オリジンサーバーのオプション設定にある「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