Dépannage des certificats

Comment savoir si mes certificats sont au format PEM ?

Vous pouvez reconnaître le format PEM par les caractéristiques suivantes :

  • Le fichier commence par l’en-tête suivant :

      -----BEGIN CERTIFICATE-----
  • L’en-tête est suivi d’une longue chaîne de caractères.

  • Le fichier se termine par un pied de page : ----END CERTIFICATE----

Exemple de certificat PEM :

----BEGIN CERTIFICATE-----
MIIGVDCCBDygAwIBAgIJAMiIrEm29kRLMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNV
... more lines
VWQqljhfacYPgp8KJUJENQ9h5hZ2nSCrI+W00Jcw4QcEdCI8HL5wmg==
-----END CERTIFICATE-----

Exemple de clé de certificat PEM :

-----BEGIN RSA PRIVATE KEY-----
MIIGVDCCBDygAwIBAgIJAMiIrEm29kRLMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNV
... more lines
VWQqljhfacYPgp8KJUJENQ9h5hZ2nSCrI+W00Jcw4QcEdCI8HL5wmg==
-----END RSA PRIVATE KEY-----

Si votre clé ressemble à l’exemple ci-dessous, consultez Conversion d’une clé de certificat de PKCS8 à PKCS1.

-----BEGIN PRIVATE KEY-----
MIIGVDCCBDygAwIBAgIJAMiIrEm29kRLMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNV
... more lines
VWQqljhfacYPgp8KJUJENQ9h5hZ2nSCrI+W00Jcw4QcEdCI8HL5wmg==
-----END PRIVATE KEY-----

Conversion d’une clé de certificat de PKCS8 à PKCS1

Si vous utilisez un fichier de clé de certificat PKCS8, Rancher enregistrera la ligne suivante :

ListenConfigController cli-config [listener] failed with : failed to read private key: asn1: structure error: tags don't match (2 vs {class:0 tag:16 length:13 isCompound:true})

Pour que cela fonctionne, vous devrez convertir la clé de PKCS8 à PKCS1 en utilisant la commande ci-dessous :

openssl rsa -in key.pem -out convertedkey.pem

Vous pouvez maintenant utiliser convertedkey.pem comme fichier de clé de certificat pour Rancher.

Quel est l’ordre des certificats si je veux ajouter mes intermédiaires ?

L’ordre d’ajout des certificats est le suivant :

-----BEGIN CERTIFICATE-----
%YOUR_CERTIFICATE%
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
%YOUR_INTERMEDIATE_CERTIFICATE%
-----END CERTIFICATE-----

Comment valider ma chaîne de certificats ?

Vous pouvez valider la chaîne de certificats en utilisant le binaire openssl. Si la sortie de la commande (voir l’exemple de commande ci-dessous) se termine par Verify return code: 0 (ok), votre chaîne de certificats est valide. Le fichier ca.pem doit être identique à celui que vous avez ajouté au conteneur rancher/rancher.

Lorsque vous utilisez un certificat signé par une Autorité de Certification reconnue, vous pouvez omettre le paramètre -CAfile.

Commande :

openssl s_client -CAfile ca.pem -connect rancher.yourdomain.com:443
...
    Verify return code: 0 (ok)