問題タブ [sslcontext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java - アルゴリズム制約チェックが署名アルゴリズムで失敗しました: SSLContext で LDAP 接続を開こうとすると RSASSA-PSS
SSLContext を使用して LDAP 接続を開こうとすると、以下のような証明書検証エラーが発生します。
以下のようにプロバイダーと署名アルゴリズムを印刷することにより、最新の Zulu JDK 8u252 で RSASSA-PSS アルゴリズムがサポートされていることを確認しました。
また、KeyFactory.getInstance("RSASSA-PSS") を実行すると、以下が署名アルゴリズムの詳細です。
サーバー証明書の内容は以下の通りです。署名アルゴリズムが RSASSA-PSS であることに注意してください
以下のように、java.security と Java の両方でほとんどの署名アルゴリズムを無効にしました。
ログでは、Security.getProperty("jdk.certpath.disabledAlgorithms") を使用して上記のアルゴリズムを無効にしています
以下のようにSSLContextを初期化しています
私は暗号に慣れていないので、オンラインリソースを使用して機能させようとしましたが、まだ何かが欠けています. 私が間違っている場所で誰かが私を助けることができますか?
アップデート:
カスタムトラストマネージャーをインスタンス化する際に、X509TrustManager の代わりに X509ExtendedTrustManager を使用することを機能させる 1 つの方法。しかし、X509TrustManager の代わりに X509ExtendedTrustManager を使用することの潜在的な脆弱性は何ですか? このリンク/コメントで述べたように、本番環境で使用するのは安全ではありません。
ssl - 認証時に jetty サーバーでクライアントの証明書を取得する方法
SslContextFactory.setNeedClientAuth(true) を設定してクライアント認証を要求する組み込み Jetty サーバーを設定した後、認証が成功した場合と失敗した場合の両方でクライアントが Jetty サーバーに接続するときにクライアントの証明書情報を取得するにはどうすればよいですか?
このリファレンスを読みましたが、これは認証が成功した場合にのみ適用されると思います。SecureRequestCustomizer.customize(...)
クライアントの証明書情報が正常に認証された後にのみ実行されるようです。
しかし、私が疑問に思っているのは、jetty サーバーが認証を行っているときに、成功または失敗に関係なく、クライアントの証明書情報を取得する方法があることです。次に、このクライアントがjettyサーバーによって信頼されていなくても、クライアントの証明書情報を取得できます。