2016-09-01 11 views
0

私たちには、クライアントにCA証明書を送信する片方向のssl HTTPSサーバーがあります。クライアントがサーバーにリクエストを送信すると、javax.net.ssl.SSLHandshakeExceptionが発生します。javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:証明書がアルゴリズムの制約に準拠していません

クライアントがhttpsサーバに要求を送信すると、サーバは以下のようにsslhandshake例外をスローします。私たちはjavaセキュリティファイルを編集しようとしましたが、それは動作していないようです。

2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- |NF javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) 
2016/08/31-12:19:18.231919-16953-17284-0x018c510000000001-002- at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) 


Client and Server connection is established. 

[email protected]> wget --no-check-certificate https://myserver:4443/zen_myevent_listener/eventListener/p1 
--2016-09-01 05:09:44-- https://myserver/zen_myevent_listener/eventListener/p1 
Connecting to 10.255.120.133:4443... connected. 

このアルゴリズムは、下図に示します。 Algorithm image

これらは我々が生成したHTTPSサーバ上の証明書です。

-rw-------. 1 root root  3967 Aug 26 15:07 01.pem 
-rw-------. 1 root root  1659 Aug 26 15:06 ca.crt 
-rw-------. 1 root root  1751 Aug 26 15:05 ca.key 
-rw-------. 1 root root  112 Aug 26 15:07 index.txt 
-rw-------. 1 root root  21 Aug 26 15:07 index.txt.attr 
-rw-------. 1 root root  0 Aug 26 15:05 index.txt.old 
-rw-------. 1 root root 42542116 Aug 31 09:48 log.txt 
-rwxrwxrwx. 1 root root  8805 Aug 26 12:51 openssl.cnf 
-rw-------. 1 root root  3 Aug 26 15:07 serial 
-rw-------. 1 root root  3 Aug 26 15:04 serial.old 
-rw-------. 1 root root  5626 Aug 26 15:07 server-chain.crt 
-rw-------. 1 root root  3967 Aug 26 15:07 server.crt 
-rw-------. 1 root root  806 Aug 26 15:06 server.csr 
-rw-------. 1 root root  887 Aug 26 15:06 server.key 

と01.pem /01.derファイルがクライアントに配置されます。

私たちがグーグルでチェックしたとき、私たちは以下の修正/解像度を得ました。これを試しても、同じエラーが発生しています。

その理由は2つあり:1024未満

  • のRSAキーサイズで使用されるデフォルトの証明書を許可しないように制限があり、新しいJavaバージョンと

    • センチネル7.1 SP1以降船ログアプリケーションのキーサイズは1024未満であり、この制限に準拠していません。このため、サーバーは上記のエラーメッセージで接続を拒否します。

    システムの作業を取得するための最速の方法は、この 変更を戻すことです。ファイルのjre/libに/セキュリティ/ java.securityを編集し、この 行を探します。

    jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024 
    

    は最後の制限を外し、行は次のようになります。

    jdk.certpath.disabledAlgorithms=MD2 
    

    再起動センチネルを変更するために効果を発揮する。

    これは解決策ではありませんが、アップグレード後に動作する回避策です。

    適切な解決方法は、強力な暗号化(1024以上のキーサイズ)を使用するログアプリケーションでカスタム証明書を使用することです。 すべてのアプリケーションが更新されたら、制限は に戻すことができます。

    IDM 4.5には、この問題を解決するために鍵サイズが1024を超える証明書を使用した計装アップグレードが含まれています。

    eDirectory 88SP8パッチ2とeDirectory 88SP7パッチ6には があります。この問題を解決するには、鍵サイズが 1024より大きい証明書による計装アップグレードが必要です。 (注:計装はeDirectoryで自動的に にアップグレードされません。 計装パッケージをeDirパッチ内に手動でインストールする必要があります。)

    これを試した後も、私たちはまだ同じエラーが発生しています。これを進める方法を手伝ってくれる人もいますか?ここで

    これはかなり悪いですopensslのX509 -text -inをserver.crt

    [email protected]> openssl x509 -text -in server.crt 
    Certificate: 
        Data: 
         Version: 3 (0x2) 
         Serial Number: 1 (0x1) 
        Signature Algorithm: md5WithRSAEncryption 
         Issuer: C=IN, ST=Karnataka, L=Bangalore, O=mycompany, OU=abc, CN=rover/[email protected] 
         Validity 
          Not Before: Aug 26 09:37:05 2016 GMT 
          Not After : Dec 9 09:37:05 2019 GMT 
         Subject: C=IN, ST=Karnataka, O=mycompany, OU=IMS, CN=rover/[email protected] 
         Subject Public Key Info: 
          Public Key Algorithm: rsaEncryption 
           Public-Key: (1024 bit) 
           Modulus: 
            00:a4:51:0e:c5:7e:eb:e9:8e:89:9c:79:6a:b5:94: 
            d3:94:53:43:b2:26:47:a5:13:25:87:a3:73:03:27: 
            4f:f8:b2:60:86:00:b3:c7:8a:d4:bd:3c:70:33:1e: 
            16:4b:0a:e7:a7:50:a6:48:0e:33:cf:6e:72:30:13: 
            c0:bd:1a:b3:57:ec:ec:bd:6b:90:84:f4:79:a9:29: 
            48:50:7d:e0:07:22:c5:cc:b1:81:4d:8d:61:f5:c6: 
            58:87:73:e0:1b:b9:a1:fc:a0:1a:42:79:96:f6:11: 
            cf:0a:60:fe:26:d4:e3:a6:b8:ca:8d:2c:48:b1:41: 
            5e:f8:64:a6:2f:02:e5:5b:8f 
           Exponent: 65537 (0x10001) 
         X509v3 extensions: 
          X509v3 Basic Constraints: 
           CA:FALSE 
          X509v3 Authority Key Identifier: 
           keyid:C5:05:6A:D7:1B:9A:E1:B6:A5:A2:2F:70:2B:13:C6:C2:74:DA:70:45 
           DirName:/C=IN/ST=Karnataka/L=Bangalore/O=mycompany/OU=IMS/CN=rover/[email protected] 
           serial:B0:C5:54:AC:F8:78:7B:5F 
    
        Signature Algorithm: md5WithRSAEncryption 
         36:ae:d7:aa:c2:ce:20:91:c9:57:77:e7:4b:c5:e1:b5:28:5d: 
         4b:85:db:03:90:67:4e:f9:7d:b1:35:8c:de:80:6d:bf:f5:d0: 
         c9:1b:10:8a:c2:de:5e:88:d6:f6:0d:fc:05:92:f0:88:81:98: 
         8c:c9:a4:57:1b:70:7d:8d:dc:90:c9:cd:e3:77:1f:81:f0:63: 
         39:42:14:ff:d6:46:cb:f9:84:2c:8d:cc:1e:b5:b9:6a:12:2a: 
         c4:d4:5c:fa:79:a6:ea:a8:9b:53:65:54:c9:68:a4:d8:63:0f: 
         64:a5:35:88:6d:9f:3b:bf:dd:ec:5f:69:95:a2:17:94:97:c9: 
         26:89:d2:1b:12:2f:39:35:1f:aa:41:d0:23:2f:0e:c8:83:02: 
         9d:70:46:ff:23:3d:5b:46:58:fa:ff:1c:3f:d1:9b:78:21:b9: 
         cf:ae:b5:3c:64:12:70:92:71:0f:9f:b0:f9:54:6a:e7:51:41: 
         b0:66:2f:0a:57:a1:a7:e6:f8:e0:7b:46:7d:e5:66:b7:f7:e9: 
         d4:23:16:89:b0:bc:8e:c5:e6:b9:69:a1:bc:2b:98:08:fc:10: 
         9c:9e:71:a8:b6:c1:fa:9a:71:5a:79:9d:07:cb:73:d4:e7:5a: 
         01:16:76:38:6e:29:8b:6a:12:72:e9:ac:36:54:a2:9f:75:ef: 
         3b:6e:c6:e0 
    -----BEGIN CERTIFICATE----- 
    MIID2DCCAsCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBjzELMAkGA1UEBhMCSU4x 
    EjAQBgNVBAgTCUthcm5hdGFrYTESMBAGA1UEBxMJQmFuZ2Fsb3JlMQ4wDAYDVQQK 
    EwVOb2tpYTEMMAoGA1UECxMDSU1TMQ8wDQYDVQQDEwZtYXJzMDQxKTAnBgkqhkiG 
    9w0BCQEWGmtpc2hvcmUudmVybmVrYXJAbm9raWEuY29tMB4XDTE2MDgyNjA5Mzcw 
    NVoXDTE5MTIwOTA5MzcwNVowezELMAkGA1UEBhMCSU4xEjAQBgNVBAgTCUthcm5h 
    dGFrYTEOMAwGA1UEChMFTm9raWExDDAKBgNVBAsTA0lNUzEPMA0GA1UEAxMGbWFy 
    czA0MSkwJwYJKoZIhvcNAQkBFhpraXNob3JlLnZlcm5la2FyQG5va2lhLmNvbTCB 
    nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApFEOxX7r6Y6JnHlqtZTTlFNDsiZH 
    pRMlh6NzAydP+LJghgCzx4rUvTxwMx4WSwrnp1CmSA4zz25yMBPAvRqzV+zsvWuQ 
    hPR5qSlIUH3gByLFzLGBTY1h9cZYh3PgG7mh/KAaQnmW9hHPCmD+JtTjprjKjSxI 
    sUFe+GSmLwLlW48CAwEAAaOB1TCB0jAJBgNVHRMEAjAAMIHEBgNVHSMEgbwwgbmA 
    FMUFatcbmuG2paIvcCsTxsJ02nBFoYGVpIGSMIGPMQswCQYDVQQGEwJJTjESMBAG 
    A1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxDjAMBgNVBAoTBU5v 
    a2lhMQwwCgYDVQQLEwNJTVMxDzANBgNVBAMTBm1hcnMwNDEpMCcGCSqGSIb3DQEJ 
    ARYaa2lzaG9yZS52ZXJuZWthckBub2tpYS5jb22CCQCwxVSs+Hh7XzANBgkqhkiG 
    9w0BAQQFAAOCAQEANq7XqsLOIJHJV3fnS8XhtShdS4XbA5BnTvl9sTWM3oBtv/XQ 
    yRsQisLeXojW9g38BZLwiIGYjMmkVxtwfY3ckMnN43cfgfBjOUIU/9ZGy/mELI3M 
    HrW5ahIqxNRc+nmm6qibU2VUyWik2GMPZKU1iG2fO7/d7F9plaIXlJfJJonSGxIv 
    OTUfqkHQIy8OyIMCnXBG/yM9W0ZY+v8cP9GbeCG5z661PGQScJJxD5+w+VRq51FB 
    sGYvClehp+b44HtGfeVmt/fp1CMWibC8jsXmuWmhvCuYCPwQnJ5xqLbB+ppxWnmd 
    B8tz1OdaARZ2OG4pi2oScumsNlSin3XvO27G4A== 
    -----END CERTIFICATE----- 
    
  • +0

    問題は証明書にありますが、イメージに証明書が表示されません。たとえば、サーバーで使用する証明書に 'openssl x509 -text -in server.pem'を実行し、出力を質問に追加します。 –

    +0

    これはおそらく問題です: 'md5WithRSAEncryption'。また、[MD5は有害な今日|不正なCA証明書を作成する](https://www.win.tue.nl/hashclash/rogue-ca/)。 – jww

    答えて

    0
    java.security.cert.CertificateException: Certificates does not conform to algorithm constraints 
    ... 
    Signature Algorithm: md5WithRSAEncryption 
    

    の出力です。署名アルゴリズムとしてのMD5は長年にわたって壊れており、この破損は数年前の主要な攻撃ですでにうまく使用されていました(Stuxnet)。私の推測では、Javaはこれについて不平を言っている。

    証明書が作成されたばかりなので、最近誰かがこの証明書の作成を乱してしまいました。 MD5の代わりにSHA-256を使用し、適切な鍵サイズ(1024ではなく2048)を使用して、適切な証明書を作成しないでください。

    関連する問題