1. JavaはSSL証明書を生成します
まず、環境に JDK がインストールされているかどうかを確認します。SSL 証明書を生成するには、JDK がインストールされている必要があります。
1.1. サーバーが証明書を生成する
サーバーが証明書を生成する: keytool を使用して Tomcat の証明書を生成します。ターゲット マシンのドメイン名が「127.0.0.1」、キーストア ファイルが「D:omcat.keystore」に保存されている、パスワードが「123456」であると仮定します。 validity は証明書の有効期間で、現在 90 日です。
生成コマンド: keytool -genkey -v -alias tomcat -keyalg RSA -keyst D:omcat.keystore -validity 36500
パスワードを設定: 123456 (または他のパスワード)
あなたの姓名は何ですか: 127.0.0.1 または localhost はローカル URL パスを表します (必須)
他の人は Enter を押してください
CN=xxx, OU=xxx, O=xxx までは…でいいでしょうか?
[いいえ]:Yまたはn
表示: <キーストアのパスワードと同じ場合は Enter を押してください>: Enter を押すだけです
omcat.keystore 証明書の生成を開始し、D ドライブに omcat.keystore の成功を示す追加のファイルがあるかどうかを確認します。
1.2. クライアントが証明書を生成する
証明書の生成コマンド: keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:ykekey.p12 (ykekey はカスタマイズされています)
この操作はサーバー証明書の生成と同じですが、姓名は何ですか。sczs などの任意の値を指定できます。
CN=xxx、OU=xxx、O=xxxになるまでEnterキーを押し続けてください...正しいですか?
[いいえ]:Yまたはn
D:ykekey.p12 証明書の生成を開始します。D ドライブに余分なファイル ykekey.p12 があるかどうかを確認し、成功したことを示します。
ykekey.p12 をダブルクリックして証明書をインストールします。インストールが完了してインポートが成功するまで、[次へ] をクリックし続けます。
1.3. サーバーはクライアント証明書を信頼します
1.3.1. クライアント証明書を別の CER ファイルとしてエクスポートする
コマンド:keytool -export -alias mykey -keystore D:ykekey.p12 -storetype PKCS12 -storepass 000000 -rfc -file D:ykekey.cer
注: D:ykekey.p12 および D:ykekey.cer、名前は ykekey と一致している必要があります。
この時点では、D ドライブに余分な ykekey.cer が存在し、成功したことを示しています。
1.3.2. ファイルをサーバーの証明書ストアにインポートし、信頼証明書として追加します。
ホーム:keytool -import -v -file D:ykekey.cer -keystore D:omcat.keystore
コマンドを使用してサーバーの証明書ストアを表示すると、2 つの証明書が表示されます。1 つはサーバー証明書、もう 1 つは信頼されたクライアント証明書です。
この証明書を信頼するかどうか: y
4. クライアントはサーバー証明書を信頼します
コマンド: keytool -keystore D:omcat.keystore -export -alias tomcat -file D:tomcat.cer (tomcat はサーバー証明書名を設定します。生成されたサーバー証明書パスワード: 123456、統一パスワードを設定します。これが最初のステップです)設定されたパスワードは一貫している必要があります)。
この時点では、D ドライブに追加の tomcat.cer ファイルがあり、成功したことを示しています。
インストールとインポートが成功するまで、ファイルをダブルクリックして証明書をサーバーにインストールします。
このステップを完了すると、SSL 証明書の生成が完了したとみなされます。次に、HTTPS を使用してアクセスできるように Tomcat ファイルを構成できます。
2.Tomcat による https アクセスの設定
単一構成 https (方法 1)
Tomcat のserver.xml ファイルを変更します。
<!--以下は単一の https 構成であり、セキュリティ リスクが伴いますが、システムにアクセスして証明書 JAVA を提供することはできます-->
<コネクタ ポート="8443"プロトコル= "HTTP/1.1" SSLEnabled="true"
maxThreads="150"スキーム=「https」 secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:\omcat.keystore"
keystorePass="123456" />
双方向で HTTPS を構成する (方法 2)
Tomcat のserver.xml ファイルを変更します。
<!--以下は双方向 https 構成です。システムにアクセスするには SSL 証明書をインストールし、証明書 JAVA を提供する必要があります-->
<コネクタ ポート="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150"スキーム="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="D:\omcat.keystore" keystorePass="123456"
truststoreFile="D:\omcat.keystore" truststorePass="123456" />
https://127.0.0.1:8443 でテスト済み
3. 同一環境のTomcatでのhttpとhttpsの双方向設定
Tomcat のserver.xml ファイルを変更します: (方法 3)
<コネクタ ポート="8080"プロトコル="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<コネクタ SSLEnabled="true"ポート= "8443" maxThreads="200"
scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" keystoreFile="D:\omcat.keystore" keystorePass="秘密暗号" />
HTTP コネクタのポートは 8080 で、HTTPS コネクタのポートは 8443 です。
Tomcatを再起動します
通过访问 http://127.0.0.1:8080 和 https://127.0.0.1:8443 来测试。
注記:
clientAuth: 双方向認証を行うかどうかを設定します。デフォルトは false で、true にすると双方向認証になります。
keystoreFile: サーバー証明書ファイルのパス
keystorePass: サーバー証明書のパスワード
truststoreFile: クライアント証明書の検証に使用されるルート証明書。この場合はサーバー証明書 (双方向 HTTPS 構成に使用されます)。
truststorePass: ルート証明書のパスワード (双方向 HTTPS 構成に使用)