Question

Pour diverses raisons, j'ai créé un serveur HTTP simple et ajouté la prise en charge de SSL via OpenSSL. J'utilise des certificats auto-signés. IE, Firefox et Chrome chargent volontiers le contenu tant que j'ajoute l'autorité de certification aux autorités de certification racines approuvées.

Cependant, wget (même si vous utilisez l'indicateur - no-check-certificate ) indique:

OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Si j'exécute le client OpenSSL sur mon serveur en utilisant:

openssl s_client -connect dnvista:82 -debug

je reviens: erreur de vérification: num = 19: certificat auto-signé dans la chaîne de certificats vérifier le retour: 0 et ensuite

5852:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:.\ssl\s3_pkt.c:1060:SSL alert number 40
5852:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:188:

Est-ce que wget et le client OpenSSL ne fonctionnent tout simplement pas avec des certificats auto-signés?

UPDATE:

Pour ceux qui viendront plus tard, l'ajout de ce code a aidé le client OpenSSL et Firefox:

EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
SSL_CTX_set_tmp_ecdh(ctx, ecdh);
EC_KEY_free(ecdh);
Était-ce utile?

La solution

J'ai consulté la page de manuel de wget et - aucun certificat de contrôle ne semble affecter que le certificat de serveur . Vous devez spécifier votre certificat auto-signé en tant que certificat d'autorité de certification valide localement.

Pour ce faire, spécifiez le certificat sous la forme - ca-certificate = ... dans wget et -CAfile dans le s_client case.

Autres conseils

Vous pouvez également installer des certificats d'autorité de certification racine approuvés dans OpenSSL de différentes façons:

  • Placez votre certificat de CA dans / etc / pki / tls / certs ou un répertoire équivalent, puis créez un lien basé sur le hachage du certificat. Voir http://gagravarr.org/writing/openssl-certs/others. shtml # ca-openssl pour plus de détails.
  • Ajoutez votre certificat de CA à /etc/pki/tls/certs/ca-bundle.crt, /etc/pki/tls/cert.pem ou à un bundle de CA équivalent.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top