2010-11-28 8 views
3

Für meine Anwendung bei ex.ample.com läuft ich habe folgendes Zertifikat von StartSSL/StartCom:Kein Thema alternative DNS name matching ex.ample.com gefunden

Certificate: 
    Data: 
     Version: 3 (0x2) 
     Serial Number: 163069 (0x27cfd) 
     Signature Algorithm: sha1WithRSAEncryption 
     Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Class 1 Primary Intermediate Server CA 
     Validity 
      Not Before: Nov 27 21:26:01 2010 GMT 
      Not After : Nov 29 15:32:05 2011 GMT 
     Subject: description=303703-Sv1xMdnmzg6garMt, C=NL, O=Persona Not Validated, OU=StartCom Free Certificate Member, CN=ex.ample.com/[email protected] 
     Subject Public Key Info: 
      Public Key Algorithm: rsaEncryption 
      RSA Public Key: (2048 bit) 
       Modulus (2048 bit): 
        .... 
       Exponent: 65537 (0x10001) 
     X509v3 extensions: 
      X509v3 Basic Constraints: 
       CA:FALSE 
      X509v3 Key Usage: 
       Digital Signature, Key Encipherment, Key Agreement 
      X509v3 Extended Key Usage: 
       TLS Web Server Authentication 
      X509v3 Subject Key Identifier: 
       31:68:B2:7B:A2:7C:79:54:B7:3E:66:FD:12:04:18:FC:FB:9B:34:64 
      X509v3 Authority Key Identifier: 
       keyid:EB:42:34:D0:98:B0:AB:9F:F4:1B:6B:08:F7:CC:64:2E:EF:0E:2C:45 

      X509v3 Subject Alternative Name: 
       DNS:ex.ample.com, DNS:ample.com 
      X509v3 Certificate Policies: 
       Policy: 1.3.6.1.4.1.23223.1.2.2 
        CPS: http://www.startssl.com/policy.pdf 
        CPS: http://www.startssl.com/intermediate.pdf 
        User Notice: 
        Organization: StartCom Ltd. 
        Number: 1 
        Explicit Text: Limited Liability, see section *Legal Limitations* of the StartCom Certification Authority Policy available at http://www.startssl.com/policy.pdf 

      X509v3 CRL Distribution Points: 
       URI:http://www.startssl.com/crt1-crl.crl 
       URI:http://crl.startssl.com/crt1-crl.crl 

      Authority Information Access: 
       OCSP - URI:http://ocsp.startssl.com/sub/class1/server/ca 
       CA Issuers - URI:http://www.startssl.com/certs/sub.class1.server.ca.crt 

      X509v3 Issuer Alternative Name: 
       URI:http://www.startssl.com/ 
    Signature Algorithm: sha1WithRSAEncryption 
     ..... 

Ich habe dieses Zertifikat richtig installiert ist. Es funktioniert, wenn ich mit Firefox auf die App zugreife. Wenn ich Java verwenden HttpURLConnection eine Seite von ihm, obwohl abzurufen, bekomme ich folgende Fehlermeldung:

Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching ex.ample.com found. 
    at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:208) 
    at sun.security.util.HostnameChecker.match(HostnameChecker.java:94) 
    at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:285) 
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:271) 
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1012) 
    ... 14 more 

Ich verstehe nicht, warum dies geschieht. ex.ample.com ist der Common Name (CN) im Zertifikat und wird auch in den SANs aufgeführt. Ich habe StarSLL-Zertifikate in meinen Truststore importiert, das ist also nicht das Problem.

+0

Wie lautet die URL? Übrigens enthält das CN * nicht * einen gültigen Hostnamen, aber den alternativen Subjektnamen. –

+1

Die URL ist einfach https://ex.sample.com/foo/bar. Offensichtlich ist das ein Beispiel, nicht die echte URL, aber die URL, auf die ich von Java aus zugreife, funktioniert in einem normalen Browser gut. –

+0

Ich verstehe, es ist ein Beispiel. Wenn Sie sich den Java-Quellcode für diese Klassen ansehen, scheint es, dass etwas an Ihrem Beispiel der echten URL/dem von Ihnen verwendeten Zertifikat nicht ganz entspricht. Oder ich könnte etwas verpasst haben, HostnameChecker ist eine komplexe Klasse. –

Antwort

0

Nicht sicher, ob Sie immer noch nach einer Antwort suchen. Wahrscheinlich nicht!

Das Problem hier ist der DNS-Eintrag in Ihrem Zertifikat entspricht nicht mit dem Server/Host-Namen, den Sie in der Anwendung bereitstellen. Ihr Code hat irgendwo eine Überprüfung des Hostnamens. Entfernen Sie entweder diesen Code oder ändern Sie den von Ihnen angegebenen Hostnamen für den DNS-Namen im Zertifikat.

Verwandte Themen