我是一名开发人员。 我们的服务器pipe理员给了我3个文件。 .cer,.pfx和.p7b,并告诉我在Apache服务器上安装SSL。 我有AWAMP与Apache版本2.4.9。 我有search,find了一些东西。 我打开httpd.conf文件并searchDocumentRoot。 DocumentRoot之后,我添加了,
DocumentRoot "c:/wamp/www/" SSLEngine on SSLCertificateFile C:/Path/MyCer.cer SSLCertificateKeyFile C:/Path/MyPfx.pfx SSLCACertificateFile C:/Path/MyP7b.p7b
现在,当我重新启动Apache。 即使在http上,我也无法浏览服务器。 当我评论上述行时,我的网站在http上工作。
虽然这不完全是一个“问题”,而且也没有指定文件内的内容,但至less有一点是错误的:一个pfx文件(假设这不是一个命名错误)不能直接用作“关键“在Apache。 在不知道cer和p7b文件的内容的情况下,让我们假设pfx具有我们需要的所有信息,并且具有pfx密码(您是这样做的,对吧?),然后从这里开始。
抓取并安装OpenSSL for Windows(build议: https : //indy.fulgan.com/SSL/有预编译的二进制文件,如果您不愿意从http://www.openssl.org/中的源代码构build)
从pfx中提取Apache所需的不同文件(需要时会提示您inputpfx密码):
一个。 从pfx中提取SSL证书私钥(encryption)
C:\Path> openssl pkcs12 -in MyPfx.pfx -nocerts -nodes -out MyEncKey.key
湾 从SSL证书私钥中删除encryption
C:\Path> openssl rsa -in MyEncKey.key -out MyKey.key
C。 从pfx中提取SSL证书
C:\Path> openssl pkcs12 -in MyPfx.pfx -clcerts -nokeys -out MyCert.cer
d。 从pfx中提取(可能是空的)CA证书链
C:\Path> openssl pkcs12 -in MyPfx.pfx -nodes -nokeys -cacerts -out MyCAs.crt
重build你的httpd.conf使用这些行而不是你的(注意:如果MyCAs.crt不是空的,只包含SSLCACertificateFile行;你可以用任何文本编辑器检查它)
SSLCertificateFile C:/Path/MyCert.cer SSLCertificateKeyFile C:/Path/MyKey.key SSLCACertificateFile C:/Path/MyCAs.crt
您的SSL证书将工作在HTTPS端口,即443,你需要redirect你的stream量从HTTP到HTTPS的Apache你需要使你需要去MMC把你的证书,然后validation那一个。