Comment puis-je obtenir LWP pour valider les certificats de serveur SSL?

Comment puis-je obtenir LWP pour vérifier que le certificat du serveur, je me connecte à est signé par une autorité de confiance et délivré à l'accueil correct? Aussi loin que je peux dire, il n'a même pas vérifier que le certificat prétend être le nom d'hôte que je suis connecté. Ça semble être un trou de sécurité majeur (surtout avec la récente DNS vulnérabilités).

Mise à jour: Il s'avère que je voulais, c'était HTTPS_CA_DIR, parce que je n'ai pas de ca-bundle.crt. Mais HTTPS_CA_DIR=/usr/share/ca-certificates/ a fait le tour. Je suis marquant la réponse que accepté de toute façon, parce que c'était assez proche.

Mise à jour 2: Il s'avère que HTTPS_CA_DIR et HTTPS_CA_FILE s'appliquent uniquement si vous utilisez Net::SSL sous-jacents de la bibliothèque SSL. Mais LWP travaille également avec IO::Socket::SSL, qui ignore les variables d'environnement et heureux de parler à n'importe quel serveur, n'importe quel certificat qu'il présente. Est-il plus général de la solution?

Mise à jour 3: Malheureusement, la solution n'est pas encore terminée. Ni Net::SSL ni IO::Socket::SSL est en train de vérifier le nom de l'hôte contre le certificat. Cela signifie que quelqu'un peut obtenir une légitime certificat pour certains domaine, et alors l'identité de n'importe quel autre domaine sans LWP se plaindre.

Mise à jour 4: LWP 6.00 résout enfin le problème. Voir ma réponse pour plus de détails.

InformationsquelleAutor cjm | 2008-09-16