Open1
https接続までの流れ(ドメイン/SSL証明書の取得/ACMEチャレンジ)
自分の理解の言語化
前提
- ドメインを取得すればサイトは公開できる
- しかしドメインを取得しただけではhttp接続でのみ公開され、https接続ではアクセスできない
- じゃあhttpsにするにはどうすれば良い?
- 取得したドメインに対してSSL証明書が確認できるとhttps接続ができる。
SSL証明書ってどう取得するの?
AWSならACMで取れる。Let's Encriptとかで発行することも可能
具体的には?
取得したドメインに対してSSL証明書の発行を認証局(CA)に依頼する。
依頼には証明書発行サービスを活用することができ、それがACMやLet's Encrypt。
これらのサービスはRFC8555に基づいてACMEチャレンジを行うことでSSL証明書の発行を自動化している
参考:
webサイトをhttps可能な状態で公開するまでの流れ
前提:公開したいwebサイトやapiのホスティングサーバーは契約済み
- ドメインレジストラから希望するドメインを取得(購入)する
- DNSサービスで、1で取得したドメインとホスティングサーバーのIPアドレスを紐づける
3. このステップを終えた段階でhttp接続による接続が可能になる - SSL証明書の発行を認証局(CA)が提供する証明書発行サービスに依頼する
- ドメインの所有権をCAに証明する(ACMEチャレンジの実行する)
- SSL証明書が発行される
- SSL証明書をホストされたwebサーバーに設定する
8. このステップを追えることでhttps接続が可能になる
ACMEチャレンジ認証について
ACMEチャレンジ認証には2種類ある。
- HTTP Challenge
- DNS Challenge
DNS Challenge の場合
- あるドメインに対して証明書を発行したいのでCAに依頼する
- 依頼者に対して、CAがドメインの所有権確認を行う
- 発行したい人に対して、このtxtレコードを設定しろ、と発行会社が指示する
- 跛行したい人はそのドメインに指定のtxtレコードを設定する
- そのtxtレコードを発行会社が確認できれば、ドメインの所有権をもっていることが確認できる。
- CAが証明書を発行する