Giao thức SSL thực sự có mã cảnh báo khi CA không xác định ... bạn có thể phát hiện ra nó bằng cách sử dụng cái gì đó như tshark tôi cho là.
nhưng hữu ích hơn là biết cách tránh vấn đề. Trong Apache, đảm bảo bạn có BA lệnh sau:
SSLCertificateFile /etc/pki/tls/certs/myserver.cert
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key
SSLCertificateChainFile /etc/pki/tls/certs/myserver.ca-bundle
Các phần mở rộng được cung cấp cho tên tệp không thực sự quan trọng đối với Apache. Trong trường hợp này, SSLCertertFile sẽ là một chứng chỉ X.509 duy nhất với Chủ đề của máy chủ và SSLCertertChainFile sẽ là một chứng chỉ CA trung gian và gốc CA (bắt đầu bằng root trước).
Đây là một tập lệnh hữu ích để giúp khám phá các chuỗi chứng chỉ trong mã hóa PEM.
#!/bin/bash
#
# For an input of concatenated PEM ("rfc style") certificates, and a
# command-line consisting of a command to run, run the command over each PEM
# certificate in the file. Typically the command would be something like
# 'openssl x509 -subject -issuer'.
#
# Example:
#
# ssl-rfc-xargs openssl x509 -subject -issuer -validity -modulus -noout < mynewcert.pem
#
sed -e 's/^[ \t]*<ds:X509Certificate>\(.*\)$/-----BEGIN CERTIFICATE-----\n\1/' \
-e 's/^[ \t]*<\/ds:X509Certificate>[ \t]*$/-----END CERTIFICATE-----\n/' \
-e 's/^\(.*\)<\/ds:X509Certificate>[ \t]*$/\1\n-----END CERTIFICATE-----\n/' \
| gawk -vcommand="$*" '
/^-----BEGIN /,/^-----END / {
print |& command
}
/^-----END / {
while ((command |& getline results) > 0) {
print results
}
close(command)
}
'
(tập lệnh cụ thể này cũng được sử dụng cho một ứng dụng XML cụ thể, đó là ý nghĩa của các bit sed gần đầu để hỗ trợ; các bit thú vị được thực hiện bởi gawk.)
Đây là một ví dụ về cách bạn có thể sử dụng nó (chẳng hạn như để xác định trong các chứng chỉ trong gói CA theo đúng thứ tự - đôi khi vấn đề này)
$ openssl s_client -connect google.com:443 -showcerts </dev/null 2>&1 | ssl-rfc-xargs openssl x509 -subject -issuer -noout
subject= /C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com
issuer= /C=US/O=Google Inc/CN=Google Internet Authority G2
subject= /C=US/O=Google Inc/CN=Google Internet Authority G2
issuer= /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
subject= /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
issuer= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
Lưu ý cách người phát hành một chứng chỉ liền kề với chủ đề của cha mẹ [ngay bên dưới]
Đây là một ví dụ khác về cách bạn có thể sử dụng tập lệnh đó để kiểm tra tệp cục bộ.
$ < /etc/pki/tls/certs/example.ca-bundle ssl-rfc-xargs openssl x509 -subject -issuer -noout