sha*_*ves 5 apache ssl-certificate x509certificate
我试图在httpd中使用SSLCACertificatePath指令指向客户端证书验证的根和中间体的集合.
我能够毫无困难地使用完整的,连接的PEM编码文件(使用SSLCACertificateFile指令),但我更愿意能够指向目录而不是构建一个大型文件.
我已按照httpd手册中的说明进行操作(并在此处进行了说明),包括对所有文件进行哈希处理,如下所示:
awk命令拆分所有单独的证书(大约40个左右)对于每个pem文件,运行:
openssl x509 -noout -hash -in NAME-OF-CA-FILE
Run Code Online (Sandbox Code Playgroud)
得到哈希
当我将httpd指向该目录时,当我尝试进行客户端证书验证时,我最终得到以下错误:
AH02039: Certificate Verification: Error (20): unable to get local issuer certificate
AH02039: Certificate Verification: Error (19): self signed certificate in certificate chain
Run Code Online (Sandbox Code Playgroud)
所以它就像是找不到中间体和根.
同样,这在使用组合PEM时都有效.
有什么建议?
您是否确保您的 apache 进程有权读取该文件夹中的文件?
当您使用 SSLCACertificateFile 时,该文件会在 apache 启动期间以 root 权限加载。
当您使用 SSLCACertificatePath 时,启动期间不会加载文件。
我遇到了同样的问题,在文件夹上设置正确的权限解决了它。