さくらの格安SSL証明書発行とCentosインストール手順

SSL証明書の更新方法とApacheへSSL証明書の適用方法を掲載。「2020年9月よりAppleがSSL証明書の有効期間を13か月に短縮」したおかげで、1年1回の作業となってしまった。Google Chrome、Mozilla FirefoxでもSafariと同様1年になってしまったことだし。

作業手順をよくよく忘れるので、備忘録として残しておこうと思う。

ただ、1年1回の作業はわりと早い・・・

さくらのSSL商品一覧

筆者は、JPRS ドメイン認証型を使用してる。価格面のみ重視である。以前はラピッドSSLを使用していたが、今は1年1回の購入と作業となってしまったので、コスパを重視している。

格安比較

2022/02/28時点HPより

JPRS ドメイン認証型

年額料金990円
取得可能な団体企業・団体・任意団体・
個人事業主・個人
認証レベルドメイン認証
ワイルドカード機能×
※1つのSSL証明書で複数の
サブドメインを保護する
wwwのSANs自動登録
※申請したFQDNとは別にwwwを
追加したコモンネームをSANsに登録
補償×
※ルート認証局過失でデータ流出
した場合の補償
サーバー台数無制限
発行スピード即時発行
スマートフォン対応・Windows Phone ver.7以上
・Android ver.4.1以上
・iOS ver.4.3以上
・BlackBerry ver.5.0以上
サーバー設定代行×
認証局JPRS
※ルート証明書はセコムトラスト
システムズ株式会社。
日本のルート認証局

ラピッドSSL

年額料金2970円
取得可能な団体企業・団体・個人事業主・
個人
認証レベルドメイン認証
ワイルドカード機能×
wwwのSANs自動登録
補償×
サーバー台数無制限
発行スピード即時発行
スマートフォン対応・Windows Phone ver.7以上
・Android ver.4.1以上
・iOS ver.4.3以上
・BlackBerry ver.5.0以上
サーバー設定代行×
認証局デジサート
※デジサートはアメリカの
デジタル証明書の認証局を運営
する企業。
証明書事業では世界最大手

購入

こちら

申し込みボタンを押すとログイン画面を経て下記の画面に移動します。

ダブルアドレスオプションは、www.ドメインとwww.がない両方で運営している場合は、申し込むをチェックする。当サイトはwww.なしで運営しているので、申し込まないをチェックしている。

CSR(証明書情報)を作成

CSRとは、SSLサーバ証明書を導入するサーバ上で生成する証明書の署名リクエスト(Certificate Signing Request)です。
サーバー証明書を導入するサーバで、ウェブサイトの情報(ディスティングイッシュネーム)などを入力して生成します。

鍵ペアの生成

2048 ビットの RSA 鍵ペアを生成し、「server.key」 (ファイル名は任意) というファイル名で保存します。

$ openssl genrsa -aes256 2048 >server.key
[centos@i-vhost work]$ openssl genrsa -aes256 2048 >server.key
Generating RSA private key, 2048 bit long modulus
.............+++
..............................................................................................+++
e is 65537 (0x10001)
Enter pass phrase:パスワードを入力
Verifying - Enter pass phrase:パスワードを入力
[centos@i-vhost work]$ 

「-sha256」:アルゴリズムを示すオプション。
※0.9.8 以降の OpenSSL が、このアルゴリズムをサポートしています。

CSRの生成

鍵ペアが作成後にそれを使用してCSRを生成します。

$ openssl req -new -key server.key -out server.csr -sha256
[centos@i-vhost work]$ openssl req -new -key server.key -out server.csr -sha256
Enter pass phrase for server.key:パスワードを入力
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:国名 ※例:JP
State or Province Name (full name) []:都道府県 ※例:Tokyo
Locality Name (eg, city) [Default City]:市区町村 ※例:Chiyoda-ku
Organization Name (eg, company) [Default Company Ltd]: 組織名 ※例:Japan Reg Co., Ltd.
Organizational Unit Name (eg, section) []: 部署名 ※省略可
Common Name (eg, your name or your server's hostname) []:サーバー名 ※enjoy.com
Email Address []:空白 ※指定なし

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:空白 ※指定なし
An optional company name []:空白 ※指定なし
[centos@i-vhost work]$ ls
server.csr  server.key ※csrが造られる。
[centos@i-vhost work]$ 
[centos@i-vhost work]$ cat server.csr 
-----BEGIN CERTIFICATE REQUEST-----
↑から
↓までコピーする
-----END CERTIFICATE REQUEST-----

以下の情報を入力する

  • Country Name (2 letter code):国名
  • State or Province Name (full name) []:申請する組織の都道府県名
  • Locality Name (eg, city) [Default City]:申請する組織の市町村名
  • Organization Name (eg, company) [Default Company Ltd]:申請する英訳組織名
  • Organizational Unit Name (eg, section) []:申請する組織の部署名※省略可
  • Common Name (eg, your name or your server’s hostname) []:申請するサーバ証明書のFQDN(サーバー名+ドメイン名)

以下の項目は不要のため何も値を入力せずEnterキーを押して進みます。

  • Email Address []:
  • A challenge password []:
  • An optional company name []:
-----BEGIN CERTIFICATE REQUEST-----
↑から
↓までコピーする
-----END CERTIFICATE REQUEST-----

上記の間の文字列を下記のサイトに貼る。

貼り付け後に右矢印をクリックすると、CSRファイルを作成した内容が表示される。最低限コモンネームは確認しておくこと。

特にFQDN(サーバー名+ドメイン名)の先頭にwww.がないのに付けてしまったり等。

申請するFQDNと違っていた場合は、Webサイトをブラウザでアクセスした際にエラーとなってしまうため。

SSL証明書認証ファイルのアップロード

決済が済んでしばらくすると、「SSLサーバ証明書 認証ファイルのアップロードのお願い」メールが送信されてくる。

認証ファイルをダウンロードします。

ランダムな英数字の文字列.txtファイルがダウンロードされますので、Winscp等を使用してサイトへアップロードします。

$ sudo cp sfe0s15.txt /var/www/html/enjoy/.well-known/pki-validation/
$ sudo chown apache:apache /var/www/html/enjoy/.well-known/pki-validation/sfe0s15.txt
$ ls -ls /var/www/html/enjoy/.well-known/pki-validation/sfe0s15.txt
4 -rw-r--r-- 1 root root 32 Feb 26 05:54 /var/www/html/enjoy/.well-known/pki-validation/sfe0s15.txt
$ 

.well-known/pki-validation/が存在しない場合は、mkdir -pでディレクトリを作成します。

$ mkdir -p /var/www/html/enjoy/.well-known/pki-validation

認証ファイルを設置後はchownコマンドで所有者とグループをapacheに変更しておくこと。

ブラウザで確認

「https://enjoy.com/.well-known/pki-validation/sf9eeef404f8ese79f039aa20s15.txt」
「http://enjoy.com/.well-known/pki-validation/sf9eeef404f8ese79f039aa20s15.txt」Code language: JavaScript (javascript)

認証局よりドメインの使用権確認があるため、上記アドレスが有効かブラウザで確認する。Webサーバーの設定ミスやファイルの設置ミスなどでアクセスが拒否されていると、SSL証明書が発行されないため念のため確認を行った方がよい。

https及びhttpどちらもクロールしてくるため、片方の確認でよい。

また、認証期間は25日間なので期間内にSSLサーバー証明書が発行されない場合はキャンセルとなる。

SSLサーバ証明書発行及び配置

SSLサーバー証明書発行のお知らせが届いたら、「server.crt」ファイルをダウンロードし、Webサーバーに指定の場所に配置します。

/etc/httpd/conf.d/xxxx.confに記載されている以下の場所にファイルをコピーします。

SSLCertificateFile /etc/pki/tls/certs/server.crt      #発行されたSSL証明書で上書きコピーする。
SSLCertificateKeyFile /etc/pki/tls/private/server.key #鍵のペアを作成した場合は、上書きコピーしておく

配置したらWebサーバーを再起動します。

作業完了

余談:キーペアにパスフレーズを埋め込む

$ openssl rsa < server.key > server_withpass.key
Enter pass phrase:(パスフレーズ入力)
writing RSA key

(server_withpass.key として、パスフレーズの埋め込まれたキーペアが出力されます)
※パスフレーズの埋め込まれたキーペアを使用すると、 Apacheの起動時にパスフレーズの入力を省略できます。