IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Keystore, HTTPS et CURL


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre régulier Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Points : 107
    Points
    107
    Par défaut Keystore, HTTPS et CURL
    Bonjour à tous,

    Je rencontre un souci avec du SSL, et je ne savais pas trop à quel endroit le posté au mieux.

    Je présente la situation : j'ai déployé un serveur tomcat6 sur ma machine de dev(ubuntu 9.10).

    J'ai activé le mode ssl dans le fichier $TOMCAT_HOME/conf/server.xml en utilisant les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <Connector 
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="/usr/share/tomcat6/.keystore" keystorePass="password" keyAlias="tomcat"
               clientAuth="false" sslProtocol="TLS"/>
    J'ai donc créé un keystore pour tomcat à l'endroit suivant : /usr/share/tomcat6/.keystore

    Il contient les infos suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    thecanea@ubn:/usr/share/tomcat6$ keytool -list -keystore ./.keystore
    Tapez le mot de passe du Keystore :  
    
    Type Keystore : JKS
    Fournisseur Keystore : SUN
    
    Votre Keystore contient 1 entrée(s)
    
    tomcat, 16 avr. 2010, PrivateKeyEntry, 
    Empreinte du certificat (MD5) : 73:BA:09:FB:01:CC:8B:27:02:26:B5:10:40:77:D1:B3
    Ceci étant, il n'y aucun problème, je peux accéder à mes pages en https, avec l'url suivante : https://localhost:8443/monservice; Firefox me demande d'ajouter l'exception de sécurité, je retrouve bien mon certificat, aucun problème.

    Pour générer ma clé dans mon keystore j'ai utilisé la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -genkey -alias tomcat -keystore /usr/share/tomcat6/.keystore
    Ensuite, et c'est là que je vais avoir un souci, je souhaite récupérer (get) des infos sur mon site en https, via curl (j'ai testé depuis la librairie php, et depuis la commande curl directement dans la console).

    J'ai exporté mon certificat pem (et c'est là où je ne suis pas sûr de m'y être bien pris...) via la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -exportcert -alias tomcat -rfc -file /moncert.pem -keystore ./.keystore
    Ensuite j'effectue la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    thecanea@ubn:~$ curl -d "test=toto" -G --cert /usr/share/test/moncert.pem https://192.168.2.105:8443/cas/login
    curl: (58) unable to set private key file: '/usr/share/test/moncert.pem' type PEM
    Du coup j'obtiens l'erreur suivante : curl: (58) unable to set private key file: '/usr/share/test/moncert.pem' type PEM

    Et je ne vois pas comment spécifier proprement l'utilisation du certificat pour curl.
    Je pense que c'est à la génération de ce certificat que je ne fais peut être pas la bonne manipulation, je ne sais pas...

    Auriez vous des idées pour m'aiguiller svp ?

    Merci par avance,

    Cordialement,

    Thecanea

  2. #2
    Membre régulier Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Points : 107
    Points
    107
    Par défaut
    J'ai trouvé la solution, c'était un problème de configuration SSL.

    En effet, il est nécessaire de passer à curl un certificat contenant à la fois la clé privée et le certificat de notre serveur.

    J'ai trouvé l'info dans le détail des options de curl : http://curl.haxx.se/docs/manpage.html
    -E/--cert <certificate[:password]>

    (SSL) Tells curl to use the specified certificate file when getting a file with HTTPS or FTPS. The certificate must be in PEM format. If the optional password isn't specified, it will be queried for on the terminal. Note that this option assumes a "certificate" file that is the private key and the private certificate concatenated! See --cert and --key to specify them independently.

    If curl is built against the NSS SSL library then this option tells curl the nickname of the certificate to use within the NSS database defined by the environment variable SSL_DIR (or by default /etc/pki/nssdb). If the NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files may be loaded.

    If this option is used several times, the last one will be used.
    Si ça peut servir...

    Cordialement,

    Thec

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [cURL] Requête HTTP sans corps réponse juste les entêtes
    Par ksven dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/03/2009, 21h54
  2. [curl] requete http post ( simuler envoi de formulaire )
    Par mikebranque dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 07/07/2008, 21h55
  3. cURL -- envoi d'un fichier en HTTP
    Par Arnard dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 06/07/2008, 13h49
  4. envoyer une HTTP GET sans cURL
    Par Eusebius dans le forum Langage
    Réponses: 2
    Dernier message: 18/03/2007, 20h28
  5. [cURL] pbm requete http en php
    Par max.onyx dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/07/2006, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo