web-dev-qa-db-fra.com

Le certificat SSL fonctionne dans Monit - mais pas dans le magasin de clés

Dans certaines situations, il existe un fichier de clés contenant les divers certificats racine/intermédiaires stockés de manière à sembler fonctionner pour la plupart des navigateurs.

Le problème est que lorsque les navigateurs mobiles le touchent, il y a une rupture dans la chaîne et ils se plaignent.

J'ai utilisé un vérificateur SSL à l'adresse http://www.sslshopper.com/ssl-checker.html et il est indiqué que "Le certificat n'est pas approuvé dans tous les navigateurs Web. Vous devrez peut-être installer une version intermédiaire/chain certificate pour le lier à un certificat racine de confiance. " Donc ... je suppose que les navigateurs de bureau doivent déjà avoir les certificats intermédiaires et peuvent établir les connexions en chaîne, contrairement aux navigateurs mobiles.

Le fait est que j'avais utilisé Portecle pour exporter des certificats du magasin de clés et les bricoler ensemble pour créer un certificat .PEM afin d'exécuter l'utilitaire Monit. Lorsque je vérifie cette application avec le vérificateur SSL, cela fonctionne bien!

La personne qui a créé le magasin de clés à l'origine a déclaré qu'il ne pouvait pas suivre les instructions du fournisseur SSL, car il avait créé la demande de CSR à l'aide de openssl. Le cert et la clé privée ont donc dû être convertis au format DER et utilisé importkey pour les obtenir. travail; En suivant les instructions qu'il a trouvées en ligne, importkey semble utiliser uniquement un fichier de magasin de clés défini, ce qui effacerait tout élément déjà présent dans le fichier, s'il existait déjà.

Existe-t-il un moyen de récupérer le certificat que j'ai créé pour Monit et de créer un magasin de clés fonctionnel pour le site Web Tomcat?

Qu'est-ce qui causerait la rupture de la chaîne dans le magasin de clés actuel, mais fonctionnerait-il pour Monit?

J'ai les certificats intermédiaires et croisés du fournisseur de certificats SSL et le certificat du site Web, mais qu'est-ce qu'il me faudrait d'autre pour créer une chaîne de certificats fonctionnant pour un magasin de clés?

3
Bart Silverstrim

Je ne sais pas comment cela fonctionne avec Monit, mais je suppose que ce que vous avez fait consiste à créer une concaténation de structures PEM pour créer votre chaîne de certificats, comme suit:

-----BEGIN CERTIFICATE-----
MIICajCCAdOgAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJVSzEa
....
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICkjCCAfugAwIBAgIJAKm5bDEMxZd7MA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV
....
-----END CERTIFICATE-----

Vous pouvez utiliser keytool pour réimporter la chaîne entière sous votre alias (plutôt que simplement le certificat), ce qui devrait aider le serveur à envoyer la chaîne correcte:

keytool -importcert -keystore store.jks -alias myalias -file bundle.pem

(Il y a plus de détails dans cette réponse : la question portait sur les certificats client côté client, mais les mêmes commandes s'appliqueront à votre certificat de serveur côté serveur.)

1
Bruno