我们运营多个运行 Leaf webapp 的站点。我们的配置在 Centos 7.9 上运行,带有 .NET Web API 和 Apache 2.4。
该系统仅供访问我们内部网的员工使用。它使用自签名的机构根证书、中间证书和由中间证书签名(颁发)的服务器证书。openssl
显示链:
$ openssl s_client -connect leaf.ourdomain:443 -showcerts -CAfile path_to_root_cert/RootCert.cer 2> /dev/null | egrep "Certificate chain| s:| i:"
Certificate chain
0 s:/CN=leaf.ourdomain
i:/DC=org/DC=our_dc/CN=Our system CA
1 s:/DC=org/DC=our_dc/CN=Our system CA
i:/CN=Our System
我混淆了我们机构的名称,但其他一切都保持不变。
Chrome 在 Mac 上运行并配置为使用 Mac 的钥匙串访问应用程序中的根证书。这为 Leaf 的生产部署获得了安全的私有连接。
我正在配置生产系统的 VM 克隆。我们创建了一个新的私钥和一个由中间证书签名的服务器证书。httpd.conf
已修改为新域名。服务器证书、私钥和中间证书已存储在服务器上,这些 httpd 属性现在指向它们:
SSLCertificateFile "/etc/pki/tls/certs/omop-leaf-temp_hpc_our_domain_ssl.cer"
SSLCertificateKeyFile "/etc/pki/tls/private/omop-leaf-temp_hpc_our_domain_ssl.key"
SSLCertificateChainFile "/etc/pki/tls/certs/Intermediate.cer"
服务器的域名似乎要签出。混淆了,就是omop-leaf-temp.hpc.our_domain
。该名称用于 1) https 请求的 URL,2) Chrome 报告的错误消息,以及 3 ) CN
. SSLCertificateFile
这证实了
$ openssl x509 -text -in ./omop-leaf-temp_xxxx.cer| grep CN= | grep omop
Subject: C=US, ST=xxx, L=xxx, O=Our System, OU=xxx, CN=-hpc.our_domain/emailAddress=leaf-support@xxx
但是获取到生产系统的安全连接的 Chrome 实例在 VM 克隆中无法这样做:
“PEM 编码链”标识 3 个证书。按顺序,它们是SSLCertificateFile
,SSLCertificateChainFile
和 Chrome 通过 Keychain Access 获得的我们的自签名根证书(我猜想)。这对我来说似乎很好。
httpd
Chrome 尝试连接时不会在日志中报告错误(包括error_log
、leaf_access_log
和)。是。leaf_ssl_error_log
LogLevel
warn
我很困惑。为什么 Chrome 会报告Your connection is not private
以及NET::ERR_CERT_COMMON_NAME_INVALID
CN 正确且证书链良好的情况?我可以做些什么来进一步调查和解决这个问题?
谢谢