ubuntu

OpenSSL如何配置Ubuntu服务器安全

小樊
41
2025-08-20 02:04:31
栏目: 云计算

以下是使用OpenSSL配置Ubuntu服务器安全的步骤:

  1. 更新系统与安装OpenSSL

    sudo apt update && sudo apt install openssl libssl-dev  
    
  2. 生成或获取证书

    • 自签名证书(测试用):
      openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365  
      
    • 生产环境建议使用Let’s Encrypt免费证书(需安装Certbot):
      sudo apt install certbot python3-certbot-nginx  
      sudo certbot --nginx -d yourdomain.com  
      
  3. 配置Web服务器(以Nginx为例)
    编辑配置文件(如/etc/nginx/sites-available/default),添加SSL参数:

    server {  
        listen 443 ssl;  
        server_name yourdomain.com;  
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;  
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;  
        ssl_protocols TLSv1.2 TLSv1.3;  
        ssl_ciphers HIGH:!aNULL:!MD5;  
        # 其他配置...  
    }  
    

    测试并重启Nginx:

    sudo nginx -t && sudo systemctl reload nginx  
    
  4. 强化安全策略

    • 禁用不安全协议/密码套件:在/etc/ssl/openssl.cnf中设置:
      [system_default_sect]  
      MinProtocol = TLSv1.2  
      CipherString = HIGH:!aNULL:!MD5  
      
    • 启用HSTS:在Nginx配置中添加:
      add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;  
      
    • 限制访问权限
      sudo chmod 600 /etc/ssl/*.pem  
      sudo chown root:root /etc/ssl/*.pem  
      
  5. 防火墙与自动续期

    • 允许HTTPS流量(UFW):
      sudo ufw allow 'Nginx Full'  
      sudo ufw enable  
      
    • 配置Certbot自动续期(若使用Let’s Encrypt):
      sudo crontab -e  
      # 添加以下行(每90天检查一次):  
      0 0,12 * * * certbot renew --quiet && systemctl reload nginx  
      
  6. 监控与审计

    • 定期检查证书有效期:
      sudo certbot certificates  
      
    • 使用工具(如sslscan)测试SSL配置安全性:
      sudo apt install sslscan  
      sslscan yourdomain.com  
      

注意:生产环境需使用受信任的CA证书,定期备份配置文件与密钥,避免泄露私钥。

0
看了该问题的人还看了