如何在Linux服务器上转换PFX证书文件以用于Apache?

如何在Linux服务器上转换PFX证书文件以用于Apache?

我从Windows证书服务中创build了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

更新您的Apacheconfiguration文件:

 <VirtualHost 192.168.0.1:443> ... SSLEngine on SSLCertificateFile /path/to/domain.cer SSLCertificateKeyFile /path/to/domain.key ... </VirtualHost> 

除了

 openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key 

我还生成了证书颁发机构(CA)证书:

 openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts 

并将其包含在Apacheconfiguration文件中:

 <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----- 

添加到Apache vhost w / Webmin。

SSLSHopper有一些关于在不同服务器之间移动的非常详尽的文章。

http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html

只需select本页底部的相关链接。

注意:他们有一个在线转换器,让他们访问您的私钥。 他们可能会被信任,但最好使用OPENSSL命令(也显示在这个站点上)来保护私钥在你自己的机器上。