Bonjour,
Je essai actuellement d'authentifier mon tunnel OpenVPN à l'aide de certificats qui se trouvent sur ma SmartCard. Je rencontre des problèmes avec la vérification du CA qui a signer les certificats se trouvant sur la SmartCard.
Voici quels info pour vous situez dans ce que je fais.
Je travaille avec la SuisseID (Reader + SmartCard). Cette SmartCard est bloquée en écriture.
La lib opencs ne fonctionne pas avec cette clé, il faut utilisé la librairie libcvP11.so.
Sur la clé on trouve de base (à l'achat)
- Les clés RSA privés
- Les clés RSA publiques (extractable)
- Toute la chaince de certificat (Root-autosigné, IntermédiaireAuth, IntermédiaireSign, PersoAuth, PersoSign)
Les certificats utilisés de chaque coté du tunnel sont les certificats "PersoAuth" du propriétaire de la SuisseID, signé par les certificats intermédiaire, eux-m^eme signé par le certificat root.
Donc ma configuration ressemble à ça
Je récupère correctement l'accès à mon certificat personnel d'authentification avec la commande OpenVPN suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 client dev tun proto udp remote adresseIP 1194 resolv-retry infinite nobind tls-client persist-key persist-tun ca keys/SwissSignSuisseIDPlatinumCA2010-G2 pkcs11-providers /usr/lib/libcvP11.so pkcs11-id 'aaaaaa/bbbbbb\ccccc\x2E3B/7bff2081ef012f35/SwissSignID/83444981CD0E4AB27EE8B7369532C9F886FEF6B3' ns-cert-type server tls-auth /etc/openvpn/keys/ta.key 1 cipher AES-128-CBC pull #comp-lzo verb 2 mute 5
Le CA configuré si-dessus est le certificat IntermédiaireAuth sans la chaine complète (génère une erreur s'il y a un certificat auto-signer dans la chaine).
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ sudo openvpn --show-pkcs11-ids /usr/lib/libcvP11.so
Il est sur que ce certificat et valide. Je l'ai extrait de FireFox, directement de la clé via un script et télécharger sur le site de SwissSign pour voir si un des certificats n'était pas bon.
Donc je viens à mon erreur. Lorsque je veux me connecter à mon serveur OpenVPN avec la commande
Il me génère cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ sudo openvpn client.conf
J'espère que quelqu'un pourra m'éclaircir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Fri Jul 8 13:18:59 2011 VERIFY ERROR: depth=1, error=unable to get local issuer certificate: /C=CH/O=SwissSign_AG/CN=SwissSign_SuisseID_Platinum_CA_2010_-_G2 Fri Jul 8 13:18:59 2011 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Fri Jul 8 13:18:59 2011 TLS Error: TLS object -> incoming plaintext read error Fri Jul 8 13:18:59 2011 TLS Error: TLS handshake failed
Je suis persuader que l'erreur vient du CA, mais je ne sais pas comment régler ce problème.
Il y a énormément de HOWTO sur le net, mais tous avec des SmartCard qui sont modifiable (utiliser ma SmartCard limité en accès est une contrainte, je ne peux pas faire autrement).
J'arrive récupérer l'ID du certificat intermédiaire grâce à la commande :
Est ce qu'il y a un moyen de faire un link similaire au pkcs11-id vu plus haut dans la config, mais pour le CA ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ sudo pkcs15-tool -c
Bonne journée,
palo
Partager