将 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 访问它,我只是:
- 打开原始密钥文件(在
UTF-8
中编码)
- 复制内容。
- 创建了一个新的密钥文件(
vi newfile.key
)。
- 已将 #2 中的内容粘贴到新文件中。
- 将新密钥文件移到旧密钥文件的位置。
之后一切正常。
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 访问它,我只是:
- 打开原始密钥文件(在
UTF-8
中编码) - 复制内容。
- 创建了一个新的密钥文件(
vi newfile.key
)。 - 已将 #2 中的内容粘贴到新文件中。
- 将新密钥文件移到旧密钥文件的位置。
之后一切正常。