apache 的证书文件 - crt、pem、key、p7b ...我迷路了

roe*_*oeb 2 apache ssl

我有一个关于证书文件以及如何让网站在 SSL 上运行的问题。Apache 正在运行并且内置了 SSL。我已经过了 SSLSessionCache 警告,我在这里 - 每次遇到同样的问题 - 我收到一封包含一些文件的邮件,但我不知道哪个文件是什么。

我有一个 .key、.pem 和一个 .p7b 文件,而且我有 VirtualHost 配置 - 我怎么知道哪个文件是什么?

  • SSL证书文件?
  • SSLCertificateKeyFile <-- .key(我认为)
  • SSLCertificateChainFile ?

我是否需要使用 openssl 转换文件?

此服务器为内部服务器,证书是我公司颁发的。

Sim*_*tti 5

该证书是在我们公司颁发的。

有什么理由不问颁发证书的人每个文件的含义吗?

Apache 要求密钥和证书采用 PEM 编码。您可以使用此工具或 OpenSSL 将 . p7b 到 PEM。

不看内容很难知道.pem.key文件里面有什么。您可以尝试使用以下 OpenSSL 命令来检查哪一个没有失败:

# if it works, it's a CSR
openssl req -in file.pem -noout -text
# if it works, it's a certificate
openssl x509 -in file.pem -noout -text
# if it works, it's a private key
openssl rsa -in file.pem -noout -text
Run Code Online (Sandbox Code Playgroud)

链文件更容易被发现,因为它将包含多个 PEM 编码的证书,一个接一个地列出。

根据 Apache 版本,您可能需要也可能不需要该SSLCertificateChainFile指令。较新的版本要求您将链和服务器证书捆绑在一个文件中并将其传递给SSLCertificateFile. 检查您的 Apache 版本并将其与在线文档进行比较。

假设它是旧版本:

  • SSLCertificateFile 指向服务器证书文件
  • SSLCertificateChainFile 指向中间证书(如果它是自签名的,则您没有它们)
  • SSLCertificateKeyFile 指向关键

如果它是较新版本,请忽略SSLCertificateChainFile并将服务器和链(如果有)连接到您提供给SSLCertificateFile.