2012-02-15 3 views
0

J'ai créé mon certificat comme suit;Comment ajouter un certificat openssl x509 auto-signé à Tomcat

openssl req -nodes -new -text -out ~/server.req -keyout ~/server.key

openssl req -x509 -in ~/server.req -text -key ~/server.key -out ~/server.crt

J'ai besoin maintenant d'ajouter à Tomcat, je ne peux évidemment pas utiliser l'exemple docs Tomcat de

openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name tomcat -CAfile serverCA.crt -caname root -chain

parce qu'il est auto-signé. Alors, comment l'ajouter à Tomcat?

+0

La cryptographie Java est conçue de telle sorte qu'elle exige une chaîne valide vers une autorité de certification de confiance. Le seul moyen d'obtenir que Java accepte un certificat auto-signé consiste à ajouter le certificat de l'autorité de certification racine avec lequel vous avez signé le certificat dans la liste des certificats approuvés dans le magasin de clés par défaut de Java. Je l'ai fait il y a plusieurs années et ce n'était pas facile. Malheureusement, je n'ai pas le temps de trouver mes anciennes notes. J'espère que quelqu'un d'autre peut fournir des détails. –

+0

Ok, je vais voir ce que je peux trouver lié à l'ajout du certificat CA racine – tojofo

+0

@tojofo: Quels sont ces certificats? Vous les avez créés avec du CN et auto-signé? – Cratylus

Répondre

0

L'exemple fourni dans la documentation de Tomcat fonctionnera, il vous suffira de créer votre propre autorité de certification locale pour créer votre certificat.

J'ai trouvé ce tutoriel utile dans le passé: http://gagravarr.org/writing/openssl-certs/ca.shtml

Les commandes suivantes de cette page:

openssl genrsa -des3 -out CA.key <key_size> 
openssl req -new -key CA.key -x509 -days 1095 -out ../certs/CA.crt 

CA.crt sera ce qui est utilisé lors de la création de votre cert avec le drapeau -CAfile

Espérons que ça aide.

+0

J'ai créé le fichier CA.crt mais lorsque vous essayez d'ajouter en utilisant une commande du formulaire dans les documents Tomcat et énumérés ci-dessus, je reçois toujours; 'Erreur auto-signé certificat obtenant la chaîne.' – tojofo

0

J'ai trouvé mes anciennes notes.

Vous ne pouvez pas utiliser un certificat auto-signé. Ce que vous devez faire est d'aller la route plus longue et générer un CA locale « réel », comme suit:

Générez une clé privée pour le CA

openssl genrsa -out CA/cakey.pem -des3 2048 

Générer une demande de signature de certificat pour le certificat de CA racine

openssl req -new -config openssl.cnf -key CA/cakey.pem -out CA/cacert.req 

autosignée le certificat CA

openssl x509 -req -in CA/cacert.req -extfile openssl.cnf \ 
    -extensions v3_ca -signkey CA/cakey.pem -out CA/cacert.pem -days 3650 

Générer un ke Java ystore contenant le certificat d'autorité de certification pour votre client:

keytool -importcert -file CA/cacert.pem -keystore client.jks -storepass [password] 
+1

Eh bien maintenant j'ai réussi à obtenir la clé là-bas, mais au démarrage, je reçois l'erreur suivante' java.io.IOException: jsse.invalid_ssl_conf' Causée par 'Aucun certificat disponible ou clé correspond à les suites de chiffrement SSL qui sont activées' Les docs suggèrent un alias incorrect, en spécifiant 'keyAlias' ne le résolvent pas, aussi il y a seulement une clé et par défaut il devrait lire cela. Dois-je utiliser un connecteur AJP? – tojofo

Questions connexes