更新 SSL 证书后,nginx 无法启动吗?

更新 SSL 证书后,nginx 无法启动吗?

因此,我最近将我的网站托管改为 Amazon EC2,并使用从 GoDaddy 购买的密钥和证书。因此,此证书已用于我的另一个网站域名,该网站托管在 GoDaddy 本身。由于我被允许将其他域名添加到此现有证书 - 我这样做了,然后下载了证书的 .zip。

添加这些新域名后,我从 Godaddy Hosting(cpanel)复制了私钥。

现在,我将捆绑证书和密钥复制到我的 EC2 实例,并将 nginx 的路径指向 .crt 和 privatekey 文件。

我发现 ssl 在 chrome 中运行良好,但在 Safari 中却不行。

根据我的研究 - 它是我的服务器,即 EC2 实例,私钥在其中创建,我不应该使用来自 Godaddy Cpanel 的私钥并期望它是值得信赖的。

因此,为了解决这个问题,我在我的服务器上创建了一个私钥文件和一个 CSR 文件来重新密钥证书,然后使用 nginx 中的这个新私钥重新执行了上述过程,但同样似乎不起作用并引发以下错误:

Dec 14 16:13:00 ip-172-31-42-11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 14 16:13:00 ip-172-31-42-11 nginx[820704]: Enter PEM pass phrase:
Dec 14 16:13:00 ip-172-31-42-11 nginx[820704]: Enter PEM pass phrase:
Dec 14 16:13:00 ip-172-31-42-11 nginx[820704]: nginx: [emerg] cannot load certificate key "/var/www/sslnew/openssl/PRIVATEKEY.key": PEM_read_bio_PrivateKey() failed (SSL: >
Dec 14 16:13:00 ip-172-31-42-11 nginx[820704]: nginx: configuration file /etc/nginx/nginx.conf test failed
Dec 14 16:13:00 ip-172-31-42-11 systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Dec 14 16:13:00 ip-172-31-42-11 systemd[1]: nginx.service: Failed with result 'exit-code'.
Dec 14 16:13:00 ip-172-31-42-11 systemd[1]: Failed to start A high performance web server and a reverse proxy server

以下是我的 nginx ssl 配置:

server { 
        root /var/www/html;
        index index.php;
        server_name xxx.in www.xxx.in;
        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }

    listen 443 ssl; 
    ssl_certificate /var/www/sslnew/openssl/gd_bundle.crt;
    ssl_certificate_key /var/www/sslnew/openssl/newkey.key;
   }

- -编辑 - -

因此,现在我使用以下命令从私钥文件中删除了密码

openssl rsa -in key.pem -out newkey.pem

现在我收到以下错误:

Dec 14 16:56:16 ip-172-31-42-11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 14 16:56:16 ip-172-31-42-11 nginx[820971]: nginx: [emerg] SSL_CTX_use_PrivateKey("/var/www/sslnew/openssl/newkey.key") failed (SSL: error:05800074:x509 certificate routines::key values mismatch)
Dec 14 16:56:16 ip-172-31-42-11 nginx[820971]: nginx: configuration file /etc/nginx/nginx.conf test failed
Dec 14 16:56:16 ip-172-31-42-11 systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Dec 14 16:56:16 ip-172-31-42-11 systemd[1]: nginx.service: Failed with result 'exit-code'.
Dec 14 16:56:16 ip-172-31-42-11 systemd[1]: Failed to start A high performance web server and a reverse proxy server.

这是否意味着我现在需要使用 GoDaddy 重新执行 CSR 流程,或者仅从私钥中删除密码就足够了?

答案1

所以,摆脱密码就足够了。

对于下一个问题,根据我对问题的上次编辑,我终于在这里找到了答案

https://stackoverflow.com/a/49311134/1503130

因此,Godaddy 颁发了一个中间证书,我必须将其链接并创建一个组合证书,然后一切就都正常工作了。

相关内容