Vic*_*nin 6 certificate ssl-certificate certificate-authority apache-2.2
我有以下证书层次结构。我需要在 Apache 上进行客户端身份验证。
.
??? root (CA) - self signed
??? intermediate 1 (CA)
| ??? client1
| ??? client2
??? intermediate 2 (CA)
??? client3
??? client4
Run Code Online (Sandbox Code Playgroud)
谁应该存储中间证书(客户端或服务器)?
我宁愿只在服务器上存储一个根 CA 来验证所有客户端证书。主要原因是中间 CA 的列表可以增长,我不想更新存储在 Apache 配置中的所有时间证书。
这在技术上可行吗?SSL 协议是否要求客户端发送整个链?
关于这个问题的一个想法。据我了解,当客户端对服务器进行身份验证时,服务器会将整个链发送给客户端。我希望它是对称的,当服务器需要对客户端进行身份验证时,发送整个链是客户端的责任。
当客户端对服务器进行身份验证时,服务器将发送 中定义的链SSLCertificateChainFile
,这是您作为服务器管理员的责任。所以当客户端标识自己时,它也负责发送整个链。Apache 只需要知道您在SSLCACertificateFile
. 您还可以自行决定在此处定义链,这将使 Apache 对于不自行发送链的客户端更加宽容。
当您为用户签署证书时,请确保为用户提供正确的链。您的用户可以使用以下 OpenSSL 命令构建 .p12:
openssl pkcs12 -export -in ${SIGNED_CERT} -inkey ${PRIVATE_KEY} \
-name ${USERNAME} -out ${OUTPUT_P12} -certfile ${PROVIDED_CHAIN}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
935 次 |
最近记录: |