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

Aar*_*son 106 apache ssl

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

我从Windows证书服务创建了PFX.PFX包含整个证书链.(这只是一个根和主要证书,没有中间人.)

带领我,聪明的人.

Mat*_*tej 192

使用OpenSSL,您可以使用下一个命令将pfx转换为Apache兼容格式:

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key   
Run Code Online (Sandbox Code Playgroud)

第一个命令将公钥提取到domain.cer.
第二个命令将私钥提取到domain.key.

使用以下命令更新Apache配置文件:

<VirtualHost 192.168.0.1:443>
 ...
 SSLEngine on
 SSLCertificateFile /path/to/domain.cer
 SSLCertificateKeyFile /path/to/domain.key
 ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)


And*_*ron 96

另外

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key
Run Code Online (Sandbox Code Playgroud)

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

openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts
Run Code Online (Sandbox Code Playgroud)

并将其包含在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>
Run Code Online (Sandbox Code Playgroud)

  • 注意:如果ca证书为空 - 请不要在配置文件中包含此行. (8认同)

小智 31

为了使它与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
Run Code Online (Sandbox Code Playgroud)

最后一个命令解密密钥以便与Apache一起使用.domain.key文件应如下所示:

-----BEGIN RSA PRIVATE KEY-----
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)