Comment obtenir le certificat de serveur de la chaîne, puis de vérifier sa validité et de confiance en Java

J'ai besoin de créer une connexion Https avec un serveur distant puis récupérer et vérifier le certificat.

J'ai établi la connexion amende:

try {  
    url = new URL(this.SERVER_URL);  
    HttpURLConnection con = (HttpURLConnection) url.openConnection();   
    HttpsURLConnection secured = (HttpsURLConnection) con;  
    secured.connect(); 
}  

Mais il semble getServerCertificateChain() méthode n'est pas définie par le type de HttpsURLConnection.

Alors, comment puis-je récupérer la chaîne de certificats de serveur? Ma compréhension est que getServerCertificateChain() doit retourner un tableau de X509Certificate objets et que cette classe possède des méthodes que je peux utiliser pour interroger le certificat.

J'ai besoin de vérifier que:

  1. le certificat est valide et fiable,
  2. vérifier la Liste de Révocation de Certificats Point de Distribution contre le numéro de série du certificat
  3. assurez-vous qu'il n'est pas expiré et
  4. vérifier que l'URL du certificat correspond à une autre (dont j'ai déjà récupéré ).

Je suis perdu et serait vraiment reconnaissant de toute aide!

Êtes-vous sûr que Java est du https, client code n'est pas déjà le faire tous les quatre pour vous?
Avez-vous la solution pour cela ? Si le Certificat est de confiance ou pas ? Toute Solution pour que

OriginalL'auteur Marc H | 2011-08-26