質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

19236閲覧

Java7でTLS1.2通信をしたい

tn_mrmn

総合スコア16

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2018/09/19 06:05

以前も質問させていただきましたが、解決に至らなかった為、再度ご協力をお願い致します。

Javaで構築したシステムをLinux環境でTomcatが動かしています。
Javaのバージョンは7です。

Javaのバージョンを変えずに外部のAPIにデフォルトでTLS1.2通信をしたいと考えております。
OSはCentOS 6.6です。apacheのバージョンは2.2.15です。

やってみたこと

・tomcat/bin/に以下のsetenv.shを配置

#!/bin/sh export JAVA_OPTS="-Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2"

・httpd.conf及びssl.confの設定の変更
/etc/httpd/conf/httpd.conf と /etc/httpd/conf.d/ssl.conf に以下の記載を追加し、旧バージョンのSSL、TLSへの接続をしないように設定。

SSLProtocol All -SSLv2 -SSLv3 -TLSv1

tomcatの再起動とapacheの再起動を行いましたが、
TLS1.2通信のみ許可している外部のAPIに接続ができませんでした。

Javaのバージョンうんぬん以前にapacheのバージョンが影響しているのかとも考えているのですが、、、
何か思い当たることある方、ぜひご教示いただけますと幸いです。

A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/20 05:29

selinux
tn_mrmn

2018/09/20 06:12

>asahina1979様 コメントいただきありがとうございます。 sestatusコマンドにて確認したところ、「ELinux status: disabled」となっておりました。この結果でなにか分かりましたら再度コメントいただけますと幸いです。
guest

回答1

0

TLS 1.2 が、サポートされたのは、OpenSSL version 1.0.1 からだと思うのですが、お使いの環境の OpenSSL のバージョンは、いくつでしょうか?

確認方法:

openssl s_client -connect www.google.com:443 -tls1_2

対応している場合

CONNECTED(00000003) depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign verify return:1 depth=1 C = US, O = Google Trust Services, CN = Google Internet Authority G3 verify return:1 depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = www.google.com verify return:1 --- Certificate chain 0 s:/C=US/ST=California/L=Mountain View/O=Google LLC/CN=www.google.com i:/C=US/O=Google Trust Services/CN=Google Internet Authority G3 1 s:/C=US/O=Google Trust Services/CN=Google Internet Authority G3 i:/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign --- Server certificate -----BEGIN CERTIFICATE----- (省略) -----END CERTIFICATE----- subject=/C=US/ST=California/L=Mountain View/O=Google LLC/CN=www.google.com issuer=/C=US/O=Google Trust Services/CN=Google Internet Authority G3 --- No client certificate CA names sent Peer signing digest: SHA256 Server Temp Key: ECDH, P-256, 256 bits --- SSL handshake has read 2986 bytes and written 415 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-GCM-SHA256 Session-ID: 9279A0635D520A443EB6E4F8B49571E05E678212FDB4E2FEF21498BAEED9A042 Session-ID-ctx: Master-Key: B0E2902118E3182E9ADEBEB731C0FF080580986DFC9F90242EA64DF5C9A37408862B28EE0AC285E17EDDE711D2006B8A Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None TLS session ticket lifetime hint: 100800 (seconds) TLS session ticket: 0000 - 00 03 c1 16 a8 05 68 cb-be 36 04 0d 94 4a 5e e1 ......h..6...J^. 0010 - f7 94 06 7f 69 62 8c 3b-26 df 36 c1 fc 94 2a 7b ....ib.;&.6...*{ 0020 - db 52 9e 7d 5c 9a 00 99-00 c8 2d 6b eb 0d c2 1f .R.}.....-k.... 0030 - af 0d 7a 4f d3 5b 5c c2-b3 5b c7 64 52 d0 e0 2f ..zO.[..[.dR../ 0040 - 19 5e ac d9 62 db 18 11-19 af 4d 26 89 79 20 48 .^..b.....M&.y H 0050 - 2f ae 8a 56 d7 0e 51 11-48 6c 59 26 73 48 c9 a0 /..V..Q.HlY&sH.. 0060 - 79 38 de 19 ec 0a 67 8a-40 f9 ed 16 9f 90 0b dd y8....g.@....... 0070 - b9 3b c2 b7 26 e6 7d d2-9b d5 2b b1 53 ed 9f f7 .;..&.}...+.S... 0080 - ef 77 d5 2b 7a 03 05 4d-43 c9 6d 42 51 47 d3 ac .w.+z..MC.mBQG.. 0090 - 62 28 f8 35 d0 e0 be 09-56 bc c9 fe 98 83 c1 cc b(.5....V....... 00a0 - b3 af 04 7e 67 fb ca 7e-7e b3 0f 80 5d 8f 01 18 ...~g..~~...]... 00b0 - 93 50 10 b1 5b 8d ae 95-2e 67 8b 30 72 a1 d8 af .P..[....g.0r... 00c0 - 93 25 43 90 df 8d e5 a6-7e 57 96 85 6f 24 c0 1e .%C.....~W..o$.. 00d0 - 6b 86 ee 9d 9c k.... Start Time: 1537337921 Timeout : 7200 (sec) Verify return code: 0 (ok) --- (以下略)

のような結果で、

SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-GCM-SHA256 Session-ID: 9279A0635D520A443EB6E4F8B49571E05E678212FDB4E2FEF21498BAEED9A042 Session-ID-ctx:

とあります。

対応していない場合

$ openssl s_client -connect www.google.com:443 -tls1_2 unknown option -tls1_2 usage: s_client args

オプションのエラーになります。

投稿2018/09/19 06:17

編集2018/09/19 06:22
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tn_mrmn

2018/09/19 06:22

コメントいただき誠にありがとうございます。 ただいま確認したところ、「1.0.1e」でした。 おそらく対応はしているかと思います。
tn_mrmn

2018/09/19 06:37

>CHERRY様 openssl s_clientコマンドにて確認しました。 「Protocol : TLSv1.2」と表示がされました。
CHERRY

2018/09/19 06:59

やっぱり、環境問題ではなかったですね... tomcat に指定した オプションが引き継がれないということあるのかなぁと思うのですが... もし、対象のプログラムにコードを追加して確認することが可能でしたら... システムプロパティのキー https.protocols や jdk.tls.client.protocols が、起動時に設定した値の TLSv1.2 で、設定されているか確認することはできますか?
tn_mrmn

2018/09/19 08:17

https.protocolsとjdk.tls.client.protocolsをJavaプログラム内で確認すればよろしいでしょうか。
CHERRY

2018/09/19 08:31 編集

はい。 tomcat の起動時に設定しても https.protocols がプログラムに渡っていないことを疑いました。 プログラムに渡っていなければ、設定されていない場合と同じ動作をすると思いますので...
tn_mrmn

2018/09/19 08:31

>CHERRY様 お返事ありがとうございます。 承知致しました。確認致します。 お手数ですが引き続きよろしくお願い致します。
tn_mrmn

2018/09/20 05:04

>CHERRY様 確認致しました。 System.getProperty("https.protocols"); System.getProperty("jdk.tls.client.protocols"); を出力してみましたが、共にnullでした。 CHERRY様が予想した通り、 どうやらプログラムに渡っていないようでした。 setenv.shに設定したにもかかわらずどこかでリセットされたということでしょうか・・・ 引き続きご教示いただけますと幸いです。
CHERRY

2018/09/20 06:22

うーん... 正直なところ、プログラムの中で System.setProperty() するぐらいしか思いつかないです。 ``` System.setProperty("https.protocols", "TLSv1.2"); System.setProperty("jdk.tls.client.protocols", "TLSv1.2"); ```
tn_mrmn

2018/09/20 07:08

>CHERRY様 コメントいただきありがとうございます。 そうですね、確かにその方法で先ほどやってみたところ接続ができました。 何が原因なのか不明ですね…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問