ダークエリア

SEのお仕事の備忘録や、ゲームの話などなどを記事に放り込む!!

HttpsURLConnection エラー「No name matching localhost found」

◆原因

keystoreに証明書が登録されていない可能性(;'∀')

ishiis.net

◆やり方

keystoreにcrtファイルをインサート。

参考:

qiita.com

<実行環境、keytool、casertsの場所を確認>

→実行環境 = 私の場合、Eclipse内のJava8を使っていたので、

 C:\Users\[ユーザ名]\Downloads\pleiades-e4.5\pleiades\java\8

→keytool = 1のパス+bin\keytool.exe

 C:\Users\[ユーザ名]\Downloads\pleiades-e4.5\pleiades\java\8\bin\keytool.exe

→caserts = 1のパス+jre\lib\security\cacerts

 C:\Users\[ユーザ名]\Downloads\pleiades-e4.5\pleiades\java\8\jre\lib\security\cacerts

 

<証明書を用意>

自作した証明書の場所を確認

→私の場合、ここに置きました C:\Users\[ユーザ名]\[証明書名].crt

 

<コマンド実行>

コマンドプロンプトでkeytoolがある場所に移動し、下記コマンド実行

keytool -import -trustcacerts -file [証明書パス] -keystore [casertsパス] -alias ca

 

◆それでもだめ?

オレオレ証明書だと通らない。ので、通過させるための記述を追加。

参考:

blogs.yahoo.co.jp

上のサイトを参考に、下記内容を追加。

「URL url = new URL」や「HttpsURLConnection」をする前に貼り付ければおk。

SSL_THROUGH.txt - Google ドライブ

 

コンソールにこんなのが出て、無事通信できました。

---

checkServerTrusted ECDHE_RSA
getAcceptedIssuers
verify localhost

---