サーバ証明書発行は初めてだったので備忘録
ドメインは取得済みのところからstart
coreSSLを選択した理由としては安かったからです
AWS SESの設定
証明書取得時にコモンネームに紐づいたメールサーバを求められます、一時的に必要なだけ & 簡単なのでメールサーバの代わりにSESを利用します
基本的には下記手順に従うだけなのですが, Rout53を利用する前提で書かれているので必要な部分だけ注釈します
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/receiving-email-getting-started.html
使えるリージョンが限られているため、当記事では「バージニア北部」を前提に進めます
ドメインの検証
SES側でドメインを設定したあと、お名前.comの「DNSレコード設定」より TXTレコード
を設定します
ついでに MXレコード
も設定しちゃいましょう
「DNSレコード設定」は 画面上部の「ドメイン設定」 > サイドメニューの「ネームサーバの設定」 > 「DNS設定/転送設定」より設定画面に入れます
TXTレコード
はAWS SESのDomains画面から取得可能で
MXレコード
は inbound-smtp.us-east-1.amazonaws.com
固定(リージョンごとでは違います)で優先値を 10
で設定しましょう, ホスト名は証明書申請するコモンネームと同じになるように設定してください
Rule Setsの作成
手順通りで問題ありません、Recipient
もとくに作成する必要はありません
CSRの作成
基本的には下記手順に従う形で大丈夫だと思います
https://www.sslbox.jp/support/man/csr_make_flow_openssl.php
Apacheを使用する前提で書かれていますが、当記事では確認にnginxを使用しますので、Apacheに関する項目はスルーしても大丈夫です
秘密鍵の作成
$ openssl genrsa -out <任意の名前>.key 2048
Requestの作成
openssl req -sha256 -new -key <任意の名前>.key -out <任意の名前>.csr
-
coreSSL
で利用できるアルゴリズムはSHA256になっているので引数で指定します-sha256
-
Country Name
はJP
を入力します - 個人用なので
Organization Name
はNone
,Organizational Unit Name
は空(何も入力せずRET)でよいでしょう
Netowlで証明書の発行申請
証明書の申請にはNetowlのSSL boxというサービスを利用します
https://www.sslbox.jp/?_ga=2.96678746.437584196.1576937387-1773080192.1576932664
登録後, 管理画面にて 「SSLボックスの管理」 > 「新規取得」 > 「他者サーバで利用」 で新規取得の作成ができます
作成後「取得証明書一覧」より申請画面に入ることができます
申請画面ではCSRを貼り付ける画面と、申請内容の入力画面を順に入力すれば、申請内容入力画面にて選択したメールアドレスに承認メールが届きます(SESを利用した場合は直接S3バケットにメールが入っています)
* CSRの貼り付けフォームは末尾改行なしの状態でないと通りませんでした、気をつけましょう
承認メール内に書かれている内容に従い、validation code
を入力後、しばらく待てば、管理画面より証明書を直接DLできるようになります
証明書の設置とnginxの設定
-
/etc/nginx/conf.d/default.conf
へ証明書の設置情報を記載
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/nginx.cert;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
...
}
}
443 sslをlistenし、ssl_certificate
ssl_certificate_key
それぞれに証明書と秘密鍵の設置pathを記載します
証明書と秘密鍵は実際に記載した設置pathへ置きましょう(当然ですが
上記作業後、nginxを再起動し、ブラウザで https://
でアクセスすれば、警告も出ず、見慣れた鍵マークが表示されていることを確認できるはずです