• No : 381
  • 公開日時 : 2024/08/29 12:35
  • 更新日時 : 2024/10/06 15:49
  • 印刷

SNIホスト名の設定は必要ですか。

カテゴリー : 

回答

オリジンサーバーのオプション設定にある「SNIホスト名」は、
オリジンサーバーが複数のTLS証明書を扱う場合に、HTTPS通信に利用するTLS証明書を指定する設定です。
 
SNIホスト名の設定は、openssl コマンドを用いて設定が必要であるか判断することができます。
ここでは、SNIホスト名の設定が必要なオリジンサーバー(※Amazon CloudFrontの場合など)に対して、
openssl コマンドを用いて確認した場合の結果を紹介します。
openssl コマンドにおいては、-servername オプションが「SNIホスト名」に該当します。
 
■servernameを指定しない場合
 

$ openssl s_client -connect xxxxxxxxxxx.cloudfront.net:443
CONNECTED(00000003)
140291074963344:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 289 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1674714745
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

■servernameを指定した場合
 
$ openssl s_client -connect xxxxx.cloudfront.net:443 -servername xxxxx.cloudfront.net
CONNECTED(00000003)
depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
verify return:1
depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
verify return:1
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M01
verify return:1
depth=0 CN = *.cloudfront.net
verify return:1
---
Certificate chain
 0 s:/CN=*.cloudfront.net
   i:/C=US/O=Amazon/CN=Amazon RSA 2048 M01
 1 s:/C=US/O=Amazon/CN=Amazon RSA 2048 M01
   i:/C=US/O=Amazon/CN=Amazon Root CA 1
 2 s:/C=US/O=Amazon/CN=Amazon Root CA 1
   i:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
 3 s:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
   i:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
省略
-----END CERTIFICATE-----
subject=/CN=*.cloudfront.net
issuer=/C=US/O=Amazon/CN=Amazon RSA 2048 M01
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5586 bytes and written 453 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: xxxxxxxxxxxxxx
    Session-ID-ctx: 
    Master-Key: xxxxxxxxxxxxxx
    Key-Arg : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 86400 (seconds)
    TLS session ticket:
    0000 - 31 36 37 34 36 37 36 33-38 30 30 30 30 00 00 00 1674676380000...
    0010 - cb c0 8f d8 71 96 b3 d8-ed f3 28 05 cb 8f dc b0 ....q.....(.....
    0020 - 4d 36 90 c9 1c 01 d7 6d-04 af 5a 24 ef 79 4c 94 M6.....m..Z$.yL.
    0030 - 5f fa bb e2 3b 7c 2e 31-e0 b2 67 ca ca 9e 80 9a _...;|.1..g.....
    0040 - 00 f4 47 22 59 ca f0 ce-13 c9 c1 d2 b0 52 ea 6e ..G"Y........R.n
    0050 - e3 6b f3 44 66 ac 84 6d-0a 8a 12 70 99 f4 92 c5 .k.Df..m...p....
    0060 - e7 3e 1b 7a 19 3b fa 13-73 .>.z.;..s
    Start Time: 1674714794 Timeout : 300 (sec) Verify return code: 0 (ok) 
---

上記の場合、servernameを指定しない場合にTLS証明書の取得に失敗していることより、「SNIホスト名」の設定が必要であることが分かります。
次のFAQもあわせてご参照ください。

▼オリジンサーバーのオプション設定が必要な場合を教えてください。
https://faq.idcf.jp/faq/show/382?site_domain=default