SSL証明書を購入する
はじめに
外部に公開するWEBサイトを建てるため、サーバとセキュアな通信(HTTPS)をするためにSSLサーバ証明書を買うことになりました。
SSLサーバ証明書が果たす役割とは
- SSL/TLSの仕組みで、通信内容の盗み見や改ざんを防ぐ
- 認証局(*)がWEBサイトの運営組織の実在を証明する
*認証局、通称CA:Certification Authorityと呼びます。
認証局が、サーバのドメイン名や組織情報を調査して、このWEBサイトは安全ですといった旨の証明書を発行します。
SSLサーバ証明書の運用の流れ
- WEBサイト運営者は、認証局にサイトのドメインを証明する証明書を申請する
- 認証局は、運営者の申請内容を確認して、SSLサーバ証明書を発行する
- サイトを閲覧する人は、証明書をブラウザで確認することができる
ドメインとは
サーバーを識別するためにIPアドレスが使われます。
一方でIPアドレスは数字の羅列のため、人間には覚えにくいです。
ドメインは、人間でもわかるよう文字列でサーバを識別するものです。
DNSとは
ドメイン名からIPアドレスを特定することを名前解決といいます。
名前解決する仕組みのことをDNS(Domain Name System)といいます。
DNSの仕組みは次のような流れです。
- DNSサーバが管理するドメインであれば、登録されているIPを返す。
- DNSサーバが管理するドメインのサブドメインであれば、サブドメインを管理するDNSサーバに問い合わせる
- それ以外のドメインであれば、上位のDNSサーバ(.coや.jp)に問い合わせる。
SSL証明書のおつかい
まずはSSLの種類を決定します。
- ドメイン認証:ドメイン名の正しさを保証する
- 企業実在認証:ドメイン名と正しさとドメインを管理する会社の実在を保証する
- EV(Extended Validation)認証:ドメインを管理する会社の実在や信頼性まで保証する
WEBサイトに対してドメイン名(こちらで決めたURL)でアクセスできればよかったため、ドメイン認証にしました。
次に購入先を調査します。
- セクティゴジャパン
- さくらインターネット
- GMO
- KDDIウェブコミュニケーションズ
金額面と手軽さ(メール認証による申し込みが出来る)から、セクティゴジャパンに決定しました。
SSL証明書をおつかいする流れ
STEP1. 新規会員登録する
新規会員登録をします。
STEP2. カートに入れる
STEP3. CSRを生成する
CSR(Certificate Signing Request)とは、認証局へ送信する署名リクエストを指します。CSRの実態は文字列です。
こちらのサイトを参考に作成します。
私はWSL2(Windows10内で動くUbuntu)を利用しました。
# データを保存するディレクトリを作成する
mkdir domain && cd domain
# openssl genrsa -out (秘密鍵ファイル名) (キー長)
openssl genrsa -out private.key 2048
# openssl req -new -key (秘密鍵ファイル名) -out (CSRファイル名)
openssl req -new -key private.key -out private.csr
# 聞かれるので入力していきます。
# 以下は自社の環境に合わせて修正します。
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Chiyoda-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:xxx Corporation
Organizational Unit Name (eg, section) []:xxx Dept
Common Name (e.g. server FQDN or YOUR name) []:xxx.co.jp
Email Address []:
A challenge password []:
An optional company name []:
# CSRの内容を確認する
less private.csr
# lessの閉じ方はQキーを押下する
STEP4. 必要情報を入力する
サーバタイプはOtherを選択して、CSRキーを先程のキーの中身をコピペします。
STEP5. 発行手続き案内のメールを待つ
購入すると購入完了の旨のメールを受領します。
あとは証明書の発行手続きのメールを待ちます。
セクティゴジャパンの場合、以下3つの手続き方法がありました。
- メール認証
- WEB認証
- DNS認証
今回は、会社DNSサーバに中継してもらう制約上、メール認証を選択しました。
STEP6. メールを受領してバリデーション
無事に購入手続きが完了すると、COMODOからメール認証の案内メールが届きます。
To complete the domain control validation for this certificate, please click here
click hereを押下して、メールに記載されているvalidation codeをコピペします。
無事にバリデーションが完了しました。
STEP7. SSL証明書を変換する
SSL証明書であるCRTファイルをPFXファイル形式の証明書に変換します。
発行されたサーバ証明書CRTファイルと、CSRファイルを作る際に準備いただいた秘密鍵を利用して行います。詳細です。
openssl pkcs12 -export -inkey <秘密鍵keyファイル名> -in <SSLサーバ証明書crtファイル名> -out <任意pfxファイル名>
# パスフレーズなしのPFXファイルがインポートできないことがあるので、パスフレーズを設定します。
以上です。
Discussion