我从GoDaddy收到了一个新的SSL证书,旧的证书来自Comodo。
/etc/ssl/private/pure-ftpd.pem内容如下:
-----BEGIN PRIVATE KEY----- PRIVATE KEY USED TO CREATE THE CSR -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- CONTENTS OF CRT FILE RECEIVED BY GODADDY -----END CERTIFICATE-----
更新文件的内容后,我重新启动pure-ftpd然后检查状态:
/etc/init.d/pure-ftpd restart /etc/init.d/pure-ftpd status [ ok ] pure-ftpd is running.
一切似乎都不错。 现在我尝试validation新的证书:
编辑 :我将GoDaddy提供的“bundle” CRT文件添加到/etc/ssl/certs ,现在我得到了这个输出(但由于下面显示的错误,我仍然无法重新启动apache2 )
openssl verify -CApath /etc/ssl/certs /etc/ssl/private/pure-ftpd.pem pure-ftpd.pem: OK
然后我试着重启apache2 (假设这会告诉系统使用新的证书):
apache2ctl graceful httpd not running, trying to start Action 'graceful' failed. The Apache error log may have more information.
Apache错误日志:
[error] Unable to configure RSA server private key [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
看起来像/etc/apache2/sites-available/default-ssl相关部分: 如果我生成了新的私钥,那么声明为SSLCertificateFile的PEM文件是否需要以某种方式更新? (如果是的话,究竟需要什么,以及如何做到这一点?)
SSLCertificateFile /etc/ssl/certs/my.server.net.pem SSLCertificateKeyFile /etc/ssl/private/my.server.net.key
我也尝试使用这些命令来比较每个文件的模数,它们是相同的:
openssl x509 -noout -modulus -in /etc/ssl/private/pure-ftpd.pem | openssl md5 openssl rsa -noout -modulus -in /etc/ssl/private/my.server.net.key | openssl md5
任何人都可以指向正确的方向吗?
另一个编辑:当我通过FileZilla等客户端访问FTP服务器时,我接受了新的GoDaddy证书的凭据。 所以这太好了,但是这个问题正在让我疯狂!
如果我生成了新的私钥,那么声明为SSLCertificateFile的PEM文件是否需要以某种方式更新?
是的,因为这是证书,意味着密钥的公共部分(和其他数据,如有效date),所以这个公共部分必须匹配.key文件中的私人部分。 你不能单独生成它们。
如果您在开始时给出的是您的新证书,则必须通过将.key文件中的部分放在.key文件中(包括这些行)来创build2个文件my.server.net.pem和.key和.pem文件中的下一部分(包含标题)。 但是,对于Apache2 TLS最终的工作还取决于证书内的CN + SAN。 如果只有ftp.myserver.whatever这个名字,而不是www.myserver.whatever那么浏览器将显示一个警报(由于名称不匹配)。