2021/03/02

rapidSSL サーバ証明書更新のオボエガキ

前提
opensslコマンドがつかる環境である事

申込後
WEBサイトから更新の申し込みを行い、その際取得した、CSRとKEYをテキストファイルに
貼り付け、 key.txt と csr.txt 等の名前で作業ディレクトリに保存 
key.txtをサーバにアップするため、RSA形式に変換


# openssl rsa -in key.txt -out <サーバにアップする際の名前>.key
# openssl rsa -in key.txt -out hoge_2021rsa.key
(今回は仮として、hoge_2021rsa.key とする)
-----BEGIN RSA PRIVATE KEY----- から
-----END RSA PRIVATE KEY-----  のRSA形式の秘密鍵に変換できる。

中間証明書をrapidSSLのサイトから取得
https://www.geotrust.co.jp/resources/rapidssl/repository/intermediate_sha2.html
ここが正規の所みたいだが、RapidSSLの人は、デジサートのアカウントじゃないから、
2021年の3月以降は、このページではサポートしないようである。
3月以降下のURLにリダイレクトさせると記載されている。
https://knowledge.digicert.com/ja/jp/solution/SOT0018.html?_ga=2.199517224.764125246.1614230988-505583794.1614230987
リンク先にある、テキストフィールドの
「—–BEGIN CERTIFICATE —–」から
「—–END CERTIFICATE—–」をテキストに貼り付けて、
中間証明書のcrtファイルとして保存する。(仮にintermediate_2021.crt とする)

 2021-03現在、crtファイルの生成に、DNS テキストフィールドを利用して
認証させる方法をrapidSSLが採用しているので、
サーバのnamed.serviceの設定ファイルにTXTレコードを追記し、
named.serviceを再起動させる。

DNSサーバツールであるbindがインストールされているはずだが、
無い場合は、インストールしておく。弊社はbindで動いている。
# yum install bind
# yum install bind-utils

設定ファイルは以下に保存されているはずなので、

/etc/named.conf の中に記載の ディレクトリにあるdbに追記TXTレコードを追記

・・・
options {
//listen-on port 53 { 127.0.0.1; };
listen-on port 53 { 192.168.142.31; };
listen-on-v6 port 53 { ::1; };
directory  "/var/named";
dump-file  "/var/named/data/cache_dump.db";
・・・


上記の場合、cache_dump.db に記載すれば良い

TXTレコードは

ドメイン名   :hoge.jp
ホスト名    : 
レコードタイプ : TXT
指定内容(Value):
1234567890abcdef(rapidsslから指示がある文字列)

例: hoge.jp.   IN TXT "
1234567890abcdef"

複数行ある場合は、カンマ区切りで一行に書くこと
(複数行で記載すると、最初の一行だけ反映される仕様のようだ)

DNSサーバ再起動後、30分くらいでTXTレコードが拾えるようになるはず。

googleさんにお願いしてhoge.jpのTXTレコードを照会する場合
$ dig @8.8.8.8 hoge.jp TXT 
;; ANSWER SECTION:
hoge.jp.         2xxxx   IN      TXT     "
1234567890abcdef"

こう帰ってくれば、反映されている。

この状態で、
Digicert社(rapidsslの親会社)が定期的にDNSをチェックしている際に、
上手く
TXTレコードに指定の文字列が確認が取れると、承認作業が完了し、Digicert社の審査を経て証明書発行される仕組み。

証明書がメールで送られてくるので、
「—–BEGIN CERTIFICATE —–」から
「—–END CERTIFICATE—–」をテキストに貼り付けて、crtファイルとして保存する。
(今回は、仮に
hoge_2021.crt とする。)

続いて、ssl証明書の配置をする。

設定ファイルは
/etc/httpd/conf.d/ssl.conf
に配置されているので、中身を確認し必要であれば、修正後のファイル名に置き換え等の
作業を行い、指定のディレクトリにRSA形式の秘密鍵と中間証明書.crt、証明書.crt
ファイルを配置した状態(ssl.confの中以下の記載のアドレスにファイルを配置)
#   Server Certificate:
SSLCertificateFile /usr/local/ssl/crt/hoge_2021.crt
#   Server Private Key:
SSLCertificateKeyFile /usr/local/ssl/private/hoge_2021rsa.key
#   Server Certificate Chain:
SSLCertificateChainFile /usr/local/ssl/crt/intermediate_2021.crt

上記のような状態でhttpdを再起動すれば、反映される(はず)
再起動
# systemctl restart httpd