我有一个由我们的 CA 签署的证书,现在我需要将该证书加载到我们的每台服务器上。正确的位置应该放在哪里,以便我们在使用证书连接到服务器时不会收到任何证书警告?
编辑
我有一个 Web 服务器,它使用证书和密钥在 8443 上通过 SSL 进行广播。我现在需要在连接到它的任何服务器上安装证书,以便它们在通过 CURL 或 wGET 连接时不会收到证书错误或其他任何东西。
编辑2
socket: Bad file descriptor
connect:errno=9
no peer certificate available
No client certificate CA names sent
SSL handshake has read 0 bytes and written 0 bytes
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
谢谢,
答案1
如果您签署了自己的 CA(证书颁发机构),安装它的正确位置取决于您配置 CRL 的方式。(证书撤销列表)。
CRL 是通过简单的 http 连接向连接的客户端提供来自 CA(您的服务器)的证书吊销列表信息的地方。由于您希望每个客户端都能连接并自动获取有关证书的信息而不会出现错误,因此正确的位置是您的 public_html/ 文件夹 http://ca.domain.com/ca.pem http://ca.domain.com/crl.pem
您实际上不必在每台服务器上安装证书,但是将您自己的证书托管为您自己的 CA要求您托管 CA 和 CRL 或服务器,因此所有客户端都可以通过连接到您的 CA 服务器自动获取有关您的 CA 颁发的任何证书的信息。
怎么运行的!
客户端协商安全连接并提供您的 CRL 以检查所提供的证书是否已撤销或处于活动状态?如果撤销,将发生错误,否则将安全地授予连接。
我假设:
- 您已在 Web 服务器上正确安装了证书。
- 您已通过使用网络浏览器连接到您的网络进行了测试,没有出现任何错误
如果上述正确,您目前使用什么? Apache、Nginx 其他?
我只能为网络服务器提供正确的配置,但是您必须让我们知道您当前在哪台服务器上安装了该服务器,以及连接时是否没有收到错误。
使用 openssl 命令解决任何证书错误
openssl s_client -connect yourweb:port -prexit
上述命令的输出是什么?
例如
openssl s_client -connect facebook.com:443 -prexit | less
CONNECTED(00000003)
---
Certificate chain
0 s:/C=US/ST=California/L=Menlo Park/O=Facebook, Inc./CN=*.facebook.com
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIH5DCCBsygAwIBAgIQDACZt9eJyfZmJjF+vOp8HDANBgkqhkiG9w0BAQsFADBw
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNz
dXJhbmNlIFNlcnZlciBDQTAeFw0xNjEyMDkwMDAwMDBaFw0xODAxMjUxMjAwMDBa
MGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRMwEQYDVQQHEwpN
ZW5sbyBQYXJrMRcwFQYDVQQKEw5GYWNlYm9vaywgSW5jLjEXMBUGA1UEAwwOKi5m
.....
.....
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Menlo Park/O=Facebook, Inc./CN=*.facebook.com
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
---
No client certificate CA names sent
---
SSL handshake has read 3718 bytes and written 421 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-ECDSA-AES128-GCM-SHA256
Server public key is 256 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-ECDSA-AES128-GCM-SHA256
Session-ID: 2982CFE50313F69D515BA388D61828E3AAD1BC39BF5250CB6EF46E527D844E46
Session-ID-ctx:
Master-Key: E3065199482B00183847DB54408736B87164BAAA15E10A22DA0AAD2941252FC2CED1C05D46E33083A1452C11093CF6C7
经验法则:
如果您无法连接测试您的服务器:端口,那么您将无法从任何地方连接到它。