TLSは多くの場合、コネクション型のトランスポート層プロトコル(通常はTCP)とアプリケーション層の間で使われる。
アプリケーション層のHTTPプロトコルをTLSでセキュアにしたアプリケーション層のプロトコルがHTTPS。 同様にFTPをTLSでセキュアにしたプロトコルがFTPS。
ref. https://hogetech.info/network/osi/layer5
現在ではルート認証局ではなく中間認証局が署名することが多い。
よって中間証明書も必要な場合が一般的。
シマンテック、ジオトラストなどは、ルート認証局のほかに中間認証局も運営している。
この認証局は大きく「ルート認証局」と「中間認証局」に二分できます。ルート認証局は自分の正当性を自分自身で証明し、他の認証局に証明書を発行できる最上位の認証局です。これに対して中間認証局は、自分の正当性を自分自身で証明することができず、上位認証局からの認証を受ける必要があります。この中間認証局が上位認証局から発行してもらう電子証明書が中間証明書です。
.pem
や.key
にする場合が多い)[^step1] .csr
) [^step2].crt
)※ 中間認証局が証明書を発行する場合は、ルート認証局が中間認証局を認証して発行される中間証明書も必要。
※ 暗号化モジュール:OpenSSL、秘密鍵暗号化アルゴリズム:RSA、共通鍵暗号化アルゴリズム:AESを仮定する(Takuya Kojima,Ami Nakajima,Emi Yoshihara,Jun Nakatsuka. Introducing to SSL - Implements HTTPS environment (Japanese Edition) (Kindle の位置No.1139-1141). Kindle 版. )
[^step1]: $ opensslgenrsa2048>/etc/httpd/conf/server.key
(Takuya Kojima,Ami Nakajima,Emi Yoshihara,Jun Nakatsuka. Introducing to SSL - Implements HTTPS environment (Japanese Edition) (Kindle の位置No.1167). Kindle 版. )。server.keyが秘密鍵。
[^step2]: $ opensslreqnewkey/etc/httpd/conf/server.key>/etc/httpd/conf/server.csr
(Takuya Kojima,Ami Nakajima,Emi Yoshihara,Jun Nakatsuka. Introducing to SSL - Implements HTTPS environment (Japanese Edition) (Kindle の位置No.1228-1229). Kindle 版.) 。入力に秘密鍵を使用しているがCSRは公開鍵だけを含む。秘密鍵が認証局に渡るわけではない。あくまで渡るのは公開鍵。秘密鍵からは常に同じ公開鍵が作成されることを忘れない。CSRを作成するコマンドは以下のとおり。server.keyが秘密鍵。opensslreqnewkey/etc/httpd/conf/server.key>/etc/httpd/conf/server.csr
(Takuya Kojima,Ami Nakajima,Emi Yoshihara,Jun Nakatsuka. Introducing to SSL - Implements HTTPS environment (Japanese Edition) (Kindle の位置No.1228-1229). Kindle 版.
[^step3]: 自己認証局でCSRからデジタル証明書を作成するコード。$openssl x 509-req-signkey server. key < server.csr > server.crt
( —『食べる!SSL! ―HTTPS環境構築から始めるSSL入門』小島 拓也, 中嶋 亜美, 等著) ここでのserver.key
は認証局の秘密鍵。自己認証局の場合は1
と同じ場合も。)。認証局に用って発行されるデジタル証明書(公開鍵証明書)はSSL/TLSの証明書の規格X.509に準拠している。
SSL証明書は.crt
の他に.pem
の拡張子も使われる(中身は同じ)。
ブラウザーは認証局の公開鍵でサーバのデジタル証明書(公開鍵証明書)の正当性を確認してから通信を開始する。
その後は共通鍵で暗号化する。
ref.
秘密鍵を作成するための暗号化モジュール。
(※ 秘密鍵からは必ず同じ公開鍵を作成できる。)
公開鍵認証のための暗号化アルゴリズム。
改竄防止に使用。改ざん防止機能MAC(Message Authentication Code)にハッシュアルゴリズムを使用するもの
HMAC (Hash-basedz) とは、メッセージ認証符号 (MAC; Message Authentication Code) の一つであり、秘密鍵とメッセージ(データ)とハッシュ関数をもとに計算される。 -- https://ja.wikipedia.org/wiki/HMAC
上記の(H)MACのアルゴリズムで使用されるハッシュアルゴリズム。
共通鍵のための暗号化アルゴリズム。
ルートドメイン(例:example.com)に限ってwwwあり・なしの両方に対応するためにWildcard certificateをする必要はない。
例えばwww
以外のtext1.example.com
、test2.example.com
を一括で対応使用する場合は、Wildcard certificateが必要。
Let's Encryptで発行したSSL証明書をACMで使用
暗号