📑

SSL証明書を購入する

2022/10/04に公開

はじめに

外部に公開するWEBサイトを建てるため、サーバとセキュアな通信(HTTPS)をするためにSSLサーバ証明書を買うことになりました。

SSLサーバ証明書が果たす役割とは

  1. SSL/TLSの仕組みで、通信内容の盗み見や改ざんを防ぐ
  2. 認証局(*)がWEBサイトの運営組織の実在を証明する

*認証局、通称CA:Certification Authorityと呼びます。
認証局が、サーバのドメイン名や組織情報を調査して、このWEBサイトは安全ですといった旨の証明書を発行します。

SSLサーバ証明書の運用の流れ

  1. WEBサイト運営者は、認証局にサイトのドメインを証明する証明書を申請する
  2. 認証局は、運営者の申請内容を確認して、SSLサーバ証明書を発行する
  3. サイトを閲覧する人は、証明書をブラウザで確認することができる

ドメインとは

サーバーを識別するためにIPアドレスが使われます。
一方でIPアドレスは数字の羅列のため、人間には覚えにくいです。
ドメインは、人間でもわかるよう文字列でサーバを識別するものです。

DNSとは

ドメイン名からIPアドレスを特定することを名前解決といいます。
名前解決する仕組みのことをDNS(Domain Name System)といいます。
DNSの仕組みは次のような流れです。

  1. DNSサーバが管理するドメインであれば、登録されているIPを返す。
  2. DNSサーバが管理するドメインのサブドメインであれば、サブドメインを管理するDNSサーバに問い合わせる
  3. それ以外のドメインであれば、上位のDNSサーバ(.coや.jp)に問い合わせる。

SSL証明書のおつかい

まずはSSLの種類を決定します。

  • ドメイン認証:ドメイン名の正しさを保証する
  • 企業実在認証:ドメイン名と正しさとドメインを管理する会社の実在を保証する
  • EV(Extended Validation)認証:ドメインを管理する会社の実在や信頼性まで保証する

WEBサイトに対してドメイン名(こちらで決めたURL)でアクセスできればよかったため、ドメイン認証にしました。

次に購入先を調査します。

  • セクティゴジャパン
  • さくらインターネット
  • GMO
  • KDDIウェブコミュニケーションズ

金額面と手軽さ(メール認証による申し込みが出来る)から、セクティゴジャパンに決定しました。

SSL証明書をおつかいする流れ

STEP1. 新規会員登録する

新規会員登録をします。

STEP2. カートに入れる

image.png

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キーを先程のキーの中身をコピペします。

image.png

image.png

STEP5. 発行手続き案内のメールを待つ

購入すると購入完了の旨のメールを受領します。
あとは証明書の発行手続きのメールを待ちます。
セクティゴジャパンの場合、以下3つの手続き方法がありました。

  • メール認証
  • WEB認証
  • DNS認証

今回は、会社DNSサーバに中継してもらう制約上、メール認証を選択しました。

STEP6. メールを受領してバリデーション

無事に購入手続きが完了すると、COMODOからメール認証の案内メールが届きます。
To complete the domain control validation for this certificate, please click here

click hereを押下して、メールに記載されているvalidation codeをコピペします。

image.png

image.png

無事にバリデーションが完了しました。

STEP7. SSL証明書を変換する

SSL証明書であるCRTファイルをPFXファイル形式の証明書に変換します。
発行されたサーバ証明書CRTファイルと、CSRファイルを作る際に準備いただいた秘密鍵を利用して行います。詳細です。

openssl pkcs12 -export -inkey <秘密鍵keyファイル名> -in <SSLサーバ証明書crtファイル名> -out <任意pfxファイル名>
# パスフレーズなしのPFXファイルがインポートできないことがあるので、パスフレーズを設定します。

以上です。

Discussion