Le protocole SSL a en effet un code d'alerte pour quand l'AC est inconnue ... vous pouvez le détecter en utilisant quelque chose comme tshark je suppose.
mais plus utile est de savoir comment éviter le problème. Dans Apache, assurez-vous que vous disposez des TROIS directives suivantes:
SSLCertificateFile /etc/pki/tls/certs/myserver.cert
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key
SSLCertificateChainFile /etc/pki/tls/certs/myserver.ca-bundle
Les extensions données aux noms de fichiers n'ont pas vraiment d'importance pour Apache. Dans ce cas, le SSLCertificateFile sera un seul certificat X.509 avec le sujet du serveur, et le SSLCertificateChainFile sera une concaténation des certificats d'autorité de certification intermédiaire et racine (en commençant par la racine en premier).
Voici un script utile pour vous aider à explorer les chaînes de certificats dans l'encodage 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)
}
'
(ce script particulier est également utilisé pour une application XML particulière, ce que les bits sed près du début sont censés prendre en charge; les bits intéressants sont effectués par gawk.)
Voici un exemple de la façon dont vous pouvez l'utiliser (par exemple, pour déterminer dans les certificats du bundle CA sont dans le bon ordre - parfois cela importe)
$ 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
Remarquez comment l'émetteur d'un seul certificat est adjacent au sujet du parent [immédiatement ci-dessous]
Voici un autre exemple de la façon dont vous pouvez utiliser ce script pour inspecter un fichier local.
$ < /etc/pki/tls/certs/example.ca-bundle ssl-rfc-xargs openssl x509 -subject -issuer -noout