更新:
のTomcatでのクライアント認証を有効にするには、次の方法を試してみてください。
tomcatがクライアント認証を利用するには、3つの証明書が必要です。すなわち、Tomcatのサーバ証明書、ブラウザのクライアント証明書、および前述の両方の証明書に署名するCAの証明書です。ここでは、Windowsでそれを行う方法を示します。
2つの方法があります。
1)CSRファイル、つまり証明書署名要求が必要です。VerisignまたはComodoなどの認証機関に送信することができます。彼らはあなたに証明書を提供します。または
2)独自の認証局を作成し、証明書に署名することができます。しかし、個人的な使用のためだけにこれを行うことをお勧めします。
以下の手順を実行するには、JavaとOpenSSLがインストールされている必要があります。
証明書署名要求を生成するには、その鍵が必要です。キーを生成するには、CMDで次のコマンドを入力します。
opensslのgenrsa -out Serverkey.key 1024
これは、ファイル "Serverkey.key" を生成します。鍵のサイズは1024です。それはあなたの要件に応じて与えることができます。
次のコマンドを使用してCSRファイルを生成します。
のopenssl reqを-new -key Serverkey.key -out ServerReq.csr -config /path/to/openssl.cnf
このコマンドを実行したら、あなたはいくつかを与えることを求められます情報。 その後、あなたのディレクトリにCSRファイルがあります。このファイルをCAに送信することができます。上記の2つのコマンドの助けを借りて、あなたの個人的な使用のためにこれを実行していて、独自のCAを持っていたい場合は、CAの鍵とCSRを作成してください。 CAのCSRを取得したら、次のコマンドの助けを借りてCAの鍵で署名することができます。
のopensslのx509 -req -days 365 -in CAReq.csr -signkey CAKey.key -out CA.crt
あなたがCA証明書を持っていたら、他の証明書に署名するためにそれを使用することができます。あなたは、クライアント証明書に同じコマンドを使用することができます
のopensslのx509 -req -days 365 -CA CA.crt -CAkey CAKey.key -CAcreateserial -in ServerReq.csr -outをserver.crt
同じように。
ここのクライアントであるブラウザは、P12形式の証明書を受け入れます。 P12形式は、証明書とキーを含むファイルです。
CRTをP12に変換するには、次のコマンドを使用します。 Tomcatので
のopensslのpkcs12 -export -inをserver.crt -inkey ServerKey.key -chain -CAfile CA.crt -out ServerCert.p12
、CAのを持っています1トラストストアがありますもう1つはサーバーの鍵と証明書(p12ファイル)を持つキーストアです。
CAの証明書をtruststoreにインポートするには、次のコマンドを使用します。
keytool -import -alias CertAuth -keystore caCerts。jks-file CA.crt
任意のエイリアスを指定できます。上記のコマンドを実行した後に尋ねられたときに入力したパスワードに注意してください。このパスワードは、server.xmlファイルで使用します。以下のコマンドにも同じことが適用されます。
p12形式の証明書をキーストアにインポートするには、次のコマンドを使用します。
のkeytool -importkeystore -destkeystore tomcat.keystore -srckeystore -ServerCert.p12 -srcstoretype PKCS12 -alias 1
さて、以下のようにTomcatのserver.xmlを変更します。
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
truststoreFile="path/to/truststorefile" truststorePass="password"
keystoreFile="path/to/keystorefile" keystorePass="password"
clientAuth="true" sslProtocol="TLS"
/>
ここで、クライアントのP12形式の証明書をブラウザにインポートします。次に、tomcatサーバーを起動し、https://localhost:8443にアクセスしてみてください。この回答の詳細については、blogをご覧ください。お役に立てれば。
私はあなたが提供した情報に基づいて、ウェブサービスプロバイダに同意する傾向があります。標準で広くサポートされている認証メカニズムを使用することを選択しました。あなたが指定したインターフェースを*実装する方法を教えてくれています。幸いなことに、彼らは広く使われている標準を選んだので、多くのリソース(StackOverflowのようなものの多くは無料です)を利用して、他のコンテキストで恩恵を受ける可能性のある技術を学ぶことができます。 – erickson
私の悩みは、この1つの問題より深くなります。私たちはサービスへのアクセス権を得るために支払うだけでなく、トランザクションごとにも支払う必要があるので、少なくとも少しは助けてください(技術的な詳細がほとんどない曖昧なPDFファイル以外) 。私の他のサードパーティのサービスプロバイダは、少なくとも私にコード例を教えてくれたり、質問があるときに正しい方向に向けることができます。 – dragonmantank