温馨提示×

ubuntu nginx如何生成ssl证书

小樊
33
2025-12-07 01:45:57
栏目: 云计算

在Ubuntu系统上使用Nginx生成SSL证书,通常有两种方法:使用Let’s Encrypt免费证书或使用自签名证书。以下是这两种方法的详细步骤:

方法一:使用Let’s Encrypt生成SSL证书

  1. 安装Certbot和Nginx插件

    sudo apt update
    sudo apt install certbot python3-certbot-nginx
    
  2. 获取SSL证书 运行Certbot命令来获取并安装SSL证书。你需要提供你的域名和电子邮件地址。

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    

    Certbot会自动配置Nginx以使用新生成的SSL证书,并创建一个定时任务来自动续期证书。

  3. 验证证书 Certbot会提示你进行一些验证步骤,通常是HTTP-01挑战。Certbot会自动完成这些步骤。

  4. 重启Nginx 证书安装完成后,Certbot会提示你重启Nginx以应用更改。

    sudo systemctl restart nginx
    

方法二:使用自签名证书生成SSL证书

  1. 生成私钥

    sudo openssl genrsa -out /etc/ssl/private/yourdomain.com.key 2048
    
  2. 生成证书签名请求(CSR)

    sudo openssl req -new -key /etc/ssl/private/yourdomain.com.key -out /etc/ssl/certs/yourdomain.com.csr
    

    在生成CSR的过程中,你需要填写一些信息,如国家、州、城市、组织名称等。

  3. 生成自签名证书

    sudo openssl x509 -req -days 365 -in /etc/ssl/certs/yourdomain.com.csr -signkey /etc/ssl/private/yourdomain.com.key -out /etc/ssl/certs/yourdomain.com.crt
    
  4. 配置Nginx使用SSL证书 编辑Nginx配置文件(通常位于/etc/nginx/sites-available/yourdomain.com),添加SSL配置:

    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
        ssl_certificate_key /etc/ssl/private/yourdomain.com.key;
    
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    }
    
  5. 启用SSL配置 创建一个符号链接以启用Nginx配置:

    sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
    
  6. 测试Nginx配置

    sudo nginx -t
    
  7. 重启Nginx

    sudo systemctl restart nginx
    

注意事项

  • Let’s Encrypt证书:免费且自动续期,适合生产环境。
  • 自签名证书:适用于测试环境,浏览器会显示安全警告,因为证书不是由受信任的CA签发的。

选择适合你需求的方法来生成SSL证书,并确保你的Nginx配置正确无误。

0