Pure-ftp SSL 证书:密钥值不匹配

Pure-ftp SSL 证书:密钥值不匹配

我从 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.

一切似乎都很好。现在我尝试验证新证书:

编辑CRT:我将GoDaddy 提供的“捆绑”文件添加到了 中,现在我得到了这个输出(但由于下面显示的错误,/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-sslPEM如果我生成了新的私钥,是否需要以某种方式更新声明的文件?SSLCertificateFile(如果是这样,其中到底需要包含什么,以及如何实现?)

 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 证书的凭证。这很棒,但这个问题让我抓狂不已!

答案1

如果我生成了新的私钥,是否需要以某种方式更新声明为 SSLCertificateFile 的 PEM 文件?

是的,因为证书代表密钥的公共部分(以及其他数据,例如有效期),所以这个公共部分必须与 .key 文件中的私有部分相匹配。您不能单独生成它们。

如果您一开始提供的是您的新证书,则必须创建 2 个文件my.server.net.pem.key并将 BEGIN PRIVATE KEY/END PRIVATE KEY 内的部分(包括这些行)放入 .key 文件中,将下一部分(带有标题)放入 .pem 文件中。但是,Apache2 TLS 最终能否正常工作还取决于证书内的 CN + SAN。如果仅为名称创建了证书,ftp.myserver.whatever而没有同时为证书创建证书www.myserver.whatever,则浏览器将显示警告(因为名称不匹配)。

相关内容