Tomcat8に対して SSLv3でSSL接続できるようにする。

Tomcat8に対して SSLv3でSSL接続できるようにする。

作業の流れ
  • keystoreを作成

keytool.exe -genkey -alias tomcat -keyalg RSA -sigalg SHA1withRSA -validity 7300

  • Javaのセキュリティ設定の変更

java.securityの"jdk.tls.disabledAlgorithms=SSLv3"をコメントアウト

確認環境

keystoreの作成

keytoolにパスを通した状態で以下のコマンドを実行


keytool.exe -genkey -alias tomcat -keyalg RSA -sigalg SHA1withRSA -validity 7300


c:\Program Files\Java\jdk1.8.0_40\bin>keytool.exe -genkey -alias tomcat -keyalg
DSA -sigalg SHA1withDSA -validity 7300
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名は何ですか。
[Unknown]:
組織単位名は何ですか。
[Unknown]:
組織名は何ですか。
[Unknown]:
都市名または地域名は何ですか。
[Unknown]:
都道府県名または州名は何ですか。
[Unknown]:
この単位に該当する2文字の国コードは何ですか。
[Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknownでよろしいで
すか。
[いいえ]: はい

の鍵パスワードを入力してください
(キーストアのパスワードと同じ場合はRETURNを押してください):#jdk.tls.disabledAlgorithms=SSLv3
新規パスワードを再入力してください:

c:\Program Files\Java\jdk1.8.0_40\bin>

入力は適切に実施すればよいと思います。パスワードはすべて"changeit"で入力しています。

.keystoreというファイルが作成されます。ファイルはホームディレクトリ(C:\Users\ユーザ名)に作成されます。

Javaのセキュリティ設定の変更

Tomcatを実行しているJARの設定ファイルを変更

jreのフォルダの配下の"lib\security"にjava.securityというファイルがあり、SSLv3を無効とする定義があるため定義をコメントアウトして無効化する。

修正前:
jdk.tls.disabledAlgorithms=SSLv3

修正後:
#jdk.tls.disabledAlgorithms=SSLv3

Tomcatのserver.xmlに設定記載

下記のような定義がコメントアウトしてあるためコメントアウトを解除して記載を修正

注意:sslProtocolを定義しているとsslEnabledProtocolsが有効にならない様なので削除する。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslEnabledProtocols="SSLv3,TLS1,TLS1.1,TLS1.2"
keystoreFile="作成したkeystoreの配置先" keystorePass="keystoreに入力したパスワード"/>