将 godaddy ssl 证书安装到服务器:当我重新启动服务 nginx 时出现以下错误

Installing godaddy ssl certificate to server : getting this below error when i restart service nginx

nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/mydomain.key") 失败 (SSL: error:0909006C:PEM routines:get_name:no 启动 line:Expecting: 任何私钥error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM 库)

#HTTPS server configuration
 server {
        listen 443;
        listen [::]:443;

        ssl on;

        ssl_certificate /etc/nginx/mydomain.chained.crt;
        ssl_certificate_key /etc/nginx/mydomain.key;

        root /var/www/html;

        server_name mydomain; 

        location / {

        try_files $uri $uri/ =404;

        }
   }

今天我遇到了这个问题并且也解决了它。 解决方案是在Notepad++中打开私钥文件,将编码改为ANSI,然后上传到服务器使用。

以防其他人遇到这种情况,@aCid 是对的。我的问题是 .key 文件的编码。

我使用 GoDaddy 并让他们为我生成私钥(然后下载)。原来它被编码为UTF-8。这不适用于 NGINX。您需要将其编码为 ASCII。

因为这已经在我的服务器上并且我通过 SSH 访问它,我只是:

  1. 打开原始密钥文件(在UTF-8中编码)
  2. 复制内容。
  3. 创建了一个新的密钥文件(vi newfile.key)。
  4. 已将 #2 中的内容粘贴到新文件中。
  5. 将新密钥文件移到旧密钥文件的位置。

之后一切正常。