である私は、JBoss(これまで7.1.0最終と7.1.1最終でテストし、Java 6のでクライアント証明書認証を設定しようとしていますおよびJava7)。JBoss7クライアント証明書の認証に:SSLセッションでCiperスイートはSSL_NULL_WITH_NULL_NULL
1)I)は、this
2に基づいて証明書を生成したIは/スタンドアロン/構成フォルダにkeystore.serverとserver.truststoreをコピーしました。私はセキュリティドメインを作成しましたstandalone.xmlで
3)
<security-domain name="RequireCertificateDomain">
<authentication>
<login-module code="CertificateRoles" flag="required">
<module-option name="securityDomain" value="RequireCertificateDomain"/>
<module-option name="verifier" value="org.jboss.security.auth.certs.AnyCertVerifier"/>
<module-option name="usersProperties" value="${jboss.server.config.dir}/my-users.properties"/>
<module-option name="rolesProperties" value="${jboss.server.config.dir}/my-roles.properties"/>
</login-module>
</authentication>
<jsse keystore-password="changeit" keystore-url="file:C:/jboss/jboss-as-7.1.1.Final/standalone/configuration/server.keystore" truststore-password="changeit" truststore-url="file:C:/jboss/jboss-as-7.1.1.Final/standalone/configuration/server.truststore"/>
</security-domain>
とHTTPSコネクタ:私は/libに/セキュリティ/ cacertsにに証明書をインポートした
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl password="changeit" certificate-key-file="${jboss.server.config.dir}/server.keystore" verify-client="want" ca-certificate-file="${jboss.server.config.dir}/server.truststore"/>
</connector>
4) (後で、私はSpring RestTemplateでセキュリティ保護されたWSにアクセスしようとしています - 運も無し)
5)インターネットオプション - >コンテンツ - > [証明書] - > [信頼されたルートCA(私はその証明書が信頼されている見ることができます)
6)私はシンプルなJavaEEの休憩WS、web.xmlファイルを作成しました:
<security-constraint>
<display-name>Area secured</display-name>
<web-resource-collection>
<web-resource-name>protected_resources</web-resource-name>
<url-pattern>/api/account/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>User with any role</description>
<role-name>*</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
のjboss-web.xmlの:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>RequireCertificateDomain</security-domain>
</jboss-web>
7)ブラウザ(Chrome/Firefox/IE)からアクセスしようとすると、HTTPステータス401 - このリクエストのクライアント証明書チェーンがありません。 server.logで、私は以下のことを見ることができます:
Handshake failed: java.io.IOException: SSL handshake failed. Ciper suite in SSL Session is SSL_NULL_WITH_NULL_NULL
私はインターネットを検索し、それがbugであってもよいことが分かったが、7.1.0の最終リリースで修正されることになっていたしました。残念ながら、このエラーは7.1.0と7.1.1の両方で発生しています。
何か不足していますか?