他サーバーで取得したドメインをAWSでhttps化する その1(CSRの取得、SSL証明書のインポート)

今回からのDNSの話は完全に備忘録です。
外部サーバーで取得したドメインをAWSのEC2(LoadBakancer)に紐づけて使っています。
それをhttps化します。

0. 証明書の取得

外部サーバー独自のところは、他のとこを使っている人は飛ばしてください。

証明書の発行のためにはCSR(Certification Signing Request)が必要です。
CSRにはドメイン名や公開鍵の情報が必要で作るのがやや面倒そう。

調べたら、AWS用のCSR作成のコマンドを作ってくれる便利なツールがありました。
こちらのページで、SSL化したいドメイン名や組織名などを打ち込めば、opensslで実行すべきコマンドが得られます。

で、マシンでそのコマンドを実行すると、2つファイルが得られます。
ドメイン名.csrとドメイン名.keyです。
両方大事なのできちんととっておきます(.keyの方は4で使います)。
お目当てのCSRはこのドメイン名.csrの入っています。

で、このCSRを使ってSSl証明書を発行してもらいます(詳細は割愛)。

証明書が発行されたら、NetowlのSSLボックス管理の証明書詳細-発行状況確認という箇所を見ます。

画像1


下を見ていくと
CERT(SSL証明書)という欄があるので横のダウンロードボタンからSSL証明書をダウンロード。
すると~.certというファイルをget出来ます。

1. ACM(AWS Certification Manager)

AWSの方から何がhttps化に必要か見ていきます。
コンソールからAWS Certification Managerを開きます。
今回は他サーバーで取得したドメインなので、青いボタンから証明書をインポートします。
そこで現れるのがつぎの証明書の選択の画面。

画像2

証明書本文と証明書のプライベートキー、証明書チェーンが必要らしいです。

2. certファイルの変換

crtファイルについてはたくさん情報がありましたが、ダウンロードしたcertファイルについてあまり情報がありませんでした。
ところがなんと、certファイルは拡張子をcrtにするだけで証明書なるらしいです。
ということで拡張子を書き換え。

次にそれを.pemにします。

openssl x509 -in ~.crt -out ~.der -outform DER
openssl x509 -in ~.der -inform DER -out ~.pem -outform pem

一回.derを介さないといけないみたいですね。
で、中身を見ると

-----BEGIN CERTIFICATE-----
(たくさんの文字列)
-----END CERTIFICATE-----

これを、ACMの証明書本文に入れればオーケー。

全然詳しくないのですが、SSL証明書の中身が本文とか、公開鍵とか色々あって、それをopensslで一部抜き出してるみたいですね。
で、それをACMに入力することで、俺ホントに証明書持ってますよって示す感じ。

3. 証明書チェーン

入力三項目目の証明書チェーンも、中間証明書をNetowlからダウンロードして、2と同じくpemまで変換して中身を入れればオーケー!

4. 証明書のプライベートキー

0. 証明書の取得で得たドメイン名.keyの中身の
-----BEGIN PRIVATE KEY-----
(文字列色々)
-----END PRIVATE KEY-----
をそのまま入力二項目目に入れればオーケー!

と思いきや、これだとダメ。

openssl rsa -in ドメイン.key

で出ていた.keyファイルの中身出ないとだめらしいです。

openssl rsa コマンドは、プライベートキーからデフォルトの暗号化を取り去り(decrypt)、Apache Webサーバー等のアプリケーションが利用できる形式への変換を行います。
(出典 : 株式会社RMS https://rms.ne.jp/howto/basis/decrypt_key.html)

ちなみにこれで出力される.keyファイルの中身は
-----BEGIN RSA PRIVATE KEY-----
(文字列沢山)
-----END RSA PRIVATE KEY-----
となっています。

5. 証明書のインポート

で、1の入力欄にインポートするだけ。


まとめ

インポートしたあとは、このSSL証明書を使ってEC2(LoadBalancer)を実際にhttps化。
それはまた次回~。

お読みになって下さり、ありがとうございます。
アプリ開発日記書いてますのでまた読んでください!

この記事が気に入ったらサポートをしてみませんか?