人生なんて暇つぶし

Webエンジニアの雑記ブログ。技術の話題はDApps開発、NEMアプリ開発がメイン。

移転しました。

約3秒後に自動的にリダイレクトします。

opensslでhttpsの疎通テストをしてハマった話し

f:id:maroemon58:20180604171649p:plain

仕事でhttpsの疎通テストをする必要があり、opensslコマンドでハマったときの備忘録です。

opensslコマンドを実行する

下記のようにコマンドを実行しました。

$ openssl s_client -tls1_2 -connect www.hogehoge.com:443
 :
 :
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
---

エラーになる・・・。ダメってことなのか?って思いましたが、動作要件は満たしているんでおかしいなと思いcurlコマンドで試してみたところ

$ curl -s -v --tlsv1.2 https://www.hogehoge.com 1> /dev/null
 :
HTTP/1.1 200 OK
 :

大丈夫でした。

長い時間悩みようやく閃きました。SNIだ。

SNIとは?

SNI(Server Name Indication)とは1台のサーバで複数のSSL証明書を利用することできるSSL/TLSの拡張仕様です。 詳しいことはこちらをご覧ください。

jp.globalsign.com

オプションを追加する

opensslコマンドに-servernameオプションを追加し再度実行します。

$ openssl s_client -tls1_2 -connect www.hogehoge.com:443 -servername www.hogehoge.com
 :
---
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: A74A5DEF0B0E5B38D6C3CBD1C11FB593E0D11FB8658B551F405ED82095FF22A0
    Session-ID-ctx:
    Master-Key: 03D23A3EFB1714B747843CC5A616B2123E4F797CD737F5D2C8AE8A293FE54330713FA050EC357D7CCF78FEE293A9047F
    TLS session ticket lifetime hint: 10800 (seconds)
    TLS session ticket:
    0000 - 0a 93 37 4e e1 02 c1 14-6e 2f 52 c8 8f 17 14 47   ..7N....n/R....G
    0010 - 71 79 b6 dc cd af 9d 96-bd a0 f5 1e 4e d8 73 78   qy..........N.sx
    0020 - a4 03 d5 56 25 01 91 c3-96 76 5e 54 35 19 b7 7c   ...V%....v^T5..|
    0030 - 8b 4a ed 70 ce 32 24 3c-07 af 7e ac 72 d4 20 ff   .J.p.2$<..~.r. .
    0040 - 8c 6d 9d 76 0e fc 55 59-14 c0 7b 7e a2 83 38 22   .m.v..UY..{~..8"
    0050 - 22 68 05 b7 0a 4d 8d 8a-de c6 dc c2 e5 8a dd 51   "h...M.........Q
    0060 - 5b 45 4e 67 61 6c a0 fb-3b d0 a5 3e 3c 8f f9 ea   [ENgal..;..><...
    0070 - 53 c6 0b 8a ba 16 2e 69-f1 c0 d0 c8 1f 45 04 8d   S......i.....E..
    0080 - 02 2f e8 86 93 56 59 66-51 c9 b5 ed c6 65 7d 93   ./...VYfQ....e}.
    0090 - 33 c4 3f cf 8e 20 49 e1-8a 96 a1 73 99 49 45 c3   3.?.. I....s.IE.
    00a0 - 17 5f 77 1b bf 62 04 64-3c 24 aa 5a 58 40 24 28   ._w..b.d<$.ZX@$(

    Start Time: 1528098781
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

今度は大丈夫でした。オプションで指定しないといけないんでつい忘れちゃいますね(デフォルトにして欲しい・・・)。ではまた。