如何在Linux服务器上转换PFX证书文件以用于Apache?
我从Windows证书服务创建了PFX . PFX包含整个证书链 . (这只是一个根和主要证书,没有中间人 . )
带领我,聪明的人 .
使用OpenSSL,您可以使用下一个命令将pfx转换为Apache兼容格式:
openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key
第一个命令将公钥提取到 domain.cer .第二个命令将私钥提取到 domain.key .
domain.cer
domain.key
使用以下命令更新Apache配置文件:
<VirtualHost 192.168.0.1:443> ... SSLEngine on SSLCertificateFile /path/to/domain.cer SSLCertificateKeyFile /path/to/domain.key ... </VirtualHost>
另外
我还生成了证书颁发机构(CA)证书:
openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts
并将其包含在Apache配置文件中:
<VirtualHost 192.168.0.1:443> ... SSLEngine on SSLCertificateFile /path/to/domain.cer SSLCertificateKeyFile /path/to/domain.key SSLCACertificateFile /path/to/domain-ca.crt ... </VirtualHost>
为了使它与Apache一起工作,我们需要一个额外的步骤 .
openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain_encrypted.key openssl rsa -in domain_encrypted.key -out domain.key
最后一个命令解密密钥以便与Apache一起使用 . domain.key文件应如下所示:
-----BEGIN RSA PRIVATE KEY----- MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq -----END RSA PRIVATE KEY-----
采取了一些工具,但这是我最终得到的 .
在IIS7上生成并安装了证书 . 从IIS导出为PFX
转换为pkcs12
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
注意:在将PFX转换为PEM格式时,openssl会将所有证书和私钥放入单个文件中 . 您需要在文本编辑器中打开该文件,并将每个证书和私钥(包括BEGIN / END语句)复制到其各自的文本文件中,并将它们分别保存为certificate.cer,CAcert.cer,privateKey.key .
-----BEGIN PRIVATE KEY----- Saved as certificate.key -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- Saved as certificate.crt -----END CERTIFICATE-----
添加到带有Webmin的apache vhost .
SSLSHopper有一些关于在不同服务器之间移动的非常全面的文章 .
http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html
只需选择本页底部的相关链接即可 .
注意:他们有一个在线转换器,可以让他们访问您的私钥 . 它们可能是可信任的,但最好使用OPENSSL命令(也在此站点上显示)将私钥保密在您自己的计算机上 .
5 回答
使用OpenSSL,您可以使用下一个命令将pfx转换为Apache兼容格式:
第一个命令将公钥提取到
domain.cer
.第二个命令将私钥提取到
domain.key
.使用以下命令更新Apache配置文件:
另外
我还生成了证书颁发机构(CA)证书:
并将其包含在Apache配置文件中:
为了使它与Apache一起工作,我们需要一个额外的步骤 .
最后一个命令解密密钥以便与Apache一起使用 . domain.key文件应如下所示:
采取了一些工具,但这是我最终得到的 .
在IIS7上生成并安装了证书 . 从IIS导出为PFX
转换为pkcs12
注意:在将PFX转换为PEM格式时,openssl会将所有证书和私钥放入单个文件中 . 您需要在文本编辑器中打开该文件,并将每个证书和私钥(包括BEGIN / END语句)复制到其各自的文本文件中,并将它们分别保存为certificate.cer,CAcert.cer,privateKey.key .
添加到带有Webmin的apache vhost .
SSLSHopper有一些关于在不同服务器之间移动的非常全面的文章 .
http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html
只需选择本页底部的相关链接即可 .
注意:他们有一个在线转换器,可以让他们访问您的私钥 . 它们可能是可信任的,但最好使用OPENSSL命令(也在此站点上显示)将私钥保密在您自己的计算机上 .