SSL protokolünün CA'nın bilinmediği zaman için bir uyarı kodu var ... Sanırım tshark gibi bir şey kullanarak bunu tespit edebilirsiniz.
ama daha yararlı bir şekilde sorunun nasıl önleneceğini bilmek. Apache'de, aşağıdaki ÜÇ yönergeye sahip olduğunuzdan emin olun:
SSLCertificateFile /etc/pki/tls/certs/myserver.cert
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key
SSLCertificateChainFile /etc/pki/tls/certs/myserver.ca-bundle
Dosya adlarına verilen uzantılar Apache için gerçekten önemli değil. Bu durumda, SSLCertificateFile, sunucunun Konusu ile tek bir X.509 sertifikası ve SSLCertificateChainFile, Ara ve Kök CA sertifikalarının bir birleşimi olacaktır (kökten başlayarak).
PEM kodlamasındaki sertifika zincirlerini keşfetmeye yardımcı olan kullanışlı bir komut dosyası.
#!/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)
}
'
(bu özel komut dosyası, belirli bir XML uygulaması için de kullanılır; bu, başlangıçtaki sed bitlerinin desteklemeyi amaçladığı şeydir; ilginç bitler gawk tarafından yapılır.)
İşte bunu nasıl kullanabileceğinize bir örnek (CA paketindeki sertifikalarda doğru sırayla belirlemek - bazen bu önemlidir)
$ 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
Bir sertifikayı verenin üst konuya nasıl bitişik olduğuna dikkat edin [hemen aşağıda]
Yerel bir dosyayı incelemek için bu komut dosyasını nasıl kullanabileceğinize ilişkin başka bir örnek.
$ < /etc/pki/tls/certs/example.ca-bundle ssl-rfc-xargs openssl x509 -subject -issuer -noout