WEB TECKS - WEBサイト構築知識いろいろ

さくらインターネットでSSL証明書を更新する

更新日:2024-02-20 22:02:17 登録日:2024-02-19 16:45:10
[確認確認環境]
Amazon Linux 2
opensslバージョン:OpenSSL 1.0.2k-fips
Apacheバージョン:2.4.57

手順

CSR(署名要求ファイル)の準備

Tera Term等のターミナルエミュレータでWEBサーバにログイン。
※構築するサーバのドメインは「example.com」と想定して以降記述します。

$ #rootユーザに変更
$ sudo su -

# #ワークディレクトリへ移動 (※ワークディレクトリは任意の場所に事前に作成しておく)
# cd /home/admin/ssl_wk

# 現在のumaskを確認
# umask
0022

# 現在のumaskを一時変更
# umask 77

# #秘密鍵の作成
# openssl genrsa -des3 2048 > servername.key
Enter pass phrase:(※任意のパスフレーズを入力)
Verifying - Enter pass phrase: (※任意のパスフレーズを入力)

# 現在のumaskを元に戻す
# umask 0022

# CSR(署名要求ファイル)生成
# openssl req -new -key servername.key -out server.csr -sha256
Enter pass phrase for servername.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]:Chuuoo-ku(※市区町村を英文字で)
Organization Name (eg, company) [Default Company Ltd]:example(※会社名・組織名を英文字で)
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:example.com(※ドメインを入力)
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(※先に入力したパスフレーズを入力)
An optional company name []:example(※会社名・組織名を英文字で)

# #CSRの中味を確認
# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE REQUEST-----
# #上記はサンプル例です。こちらの内容をテキストエディタなどに控えておきます。
#
# #※servername.keyは削除せずにそのまま残しておいて下さい。

さくらインターネットへのログイン

1.[SSLサーバ証明書お申し込み]ページを表示。
 [SSLサーバ証明書お申し込み]
2.ページ表示後[ログイン画面へ進む]をクリックし、[会員ID][パスワード]を入力し、[ログイン]をクリック。
3.[サービス選択画面へ]をクリック。

プラン選択画面

1.[お申し込み種別]で[更新]を選択。
2.更新対象のドメインの[サービスコード]を選択。[お申し込みプラン]をクリック。
3.[支払方法]を選択。
4.[ドメイン所有権確認方法]で[ファイル認証]を選択。
 (ftpでWEBサーバにアクセス可能な場合、[ファイル認証]を選択してください)
5.[ダブルアドレスオプション]で[申し込む]を選択。
 ([申し込む]を選択すると、「example.com」「www.example.com」のようにwwwありなし両方のドメインを利用できるようになります)
6.画面したの[同意する]チェックボックスをクリックして、[CSRの入力へ進む]をクリック。

CSR(証明書情報)の内容確認画面

1.先に控えておいたCSRの中味を貼り付け、[>]ボタンをクリック。
2.内容に問題がないことを確認し、[確認画面へ進む]をクリック。

プラン・お支払いについて画面

1.内容に問題がないことを確認し、[この内容で申し込む]をクリック。
2.申し込み完了画面が表示される。

申し込み後メール

以下の件名のメールが届きます。
1.「[さくらインターネット]JPRS SSLサーバ証明書お申込受付完了のお知らせ(手続きの流れご案内)」
 (JPRS SSLサーバ証明書を選択した場合)
2.「[さくらインターネット]【お申込み】クレジットカードによるお支払確認について [請求書No.XXXXXXXX]」
 (支払方法がクレジットの場合)
3.「SSLサーバ証明書 認証ファイルのアップロードのお願い」

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

こちらの作業は、申し込みしたドメインのWEBサーバが管理できる状態にあるのかをさくらインターネット側が確認するための作業になります。

1.「SSLサーバ証明書 認証ファイルのアップロードのお願い」という件名のメール中に、[認証ファイルダウンロード]というURLリンクがありますので、それをクリックします。
2.[サーバー証明書情報]画面が表示されますので、[認証ファイルのダウンロード]をクリック。
→「57b0292670723a26ac13f5c3e5f2cbcf.txt」のようなランダムな名称のファイルがダウンロードされます。
3.WEBサイトのドキュメントルートディレクトリに「.well-known/pki-validation/」というディレクトリftpもしくはmkdirコマンドで作成し、ダウンロードしたファイルをftpでアップロードします。
例)WEBサイトのドキュメントルートが「/var/www/html/example.com」の場合
「/var/www/html/example.com/.well-known/pki-validation/」というディレクトリを作成し、ダウンロードしたファイルを作成したディレクトリにアップロードします。
[※注意事項]
申込時に、[ダブルアドレスオプション]で[申し込む]を選択した場合、www付きのWEBサイト(例:www.example.com)とwwwの付かないWEBサイト(例:example.com)でドキュメントルートが異なる場合、両方のドキュメントルートに、「.well-known/pki-validation」ディレクトリを作成し、ダウンロードしたファイルをアップロードしておく必要があります。

サーバ証明書のインストール

[認証ファイル]のアップロード後、30分~1時間ほどすると以下の件名のメールが届きます。
「[さくらインターネット]【要対応】JPRS SSLサーバ証明書発行と必要な設定についてのお知らせ」

1.本文中の[SSLサーバ証明書ダウンロード]というリンク先URLをクリックしてください。
2.[サーバー証明書情報]画面が表示されるので、[サーバ証明書のダウンロード]をクリックしてください。
→「server.crt」というファイルがダウンロードされます。
3.本文中の[▽STEP2-中間CA証明書のダウンロード]のリンク先URLをクリック
4.別サイトに移動し、[ルート証明書・中間CA証明書について]画面が表示されます。
5.中間CA証明書(DV)のダウンロード[PEM形式]のリンク部をクリック。
→「JPRS_DVCA_G4_PEM.cer」というファイルがダウンロードされます。
6.ダウンロードファイル名をリネーム
※ドメインがexample.comの場合
「server.crt」を「example.com.crt」に変更
「JPRS_DVCA_G4_PEM.cer」を「example.com-bundle.crt」に変更
7.WEBサーバのワークディレクトリ(例:/home/admin/ssl_wk)に上記2ファイルをftpで転送しておく。

WEBサーバにターミナルエミュレータでログイン

$ #rootユーザに変更
$ sudo su -
#
# #秘密鍵格納ディレクトリへ移動
# cd /etc/pki/tls/private/
#
# #既に証秘密鍵がある場合は念の為バックアップ
# cp example.com.key example.com.key_20240219
#
# #証明書格納ディレクトリへ移動
# cd /etc/pki/tls/certs/
#
# #既に証明書・中間証明書がある場合は念の為バックアップ
# cp example.com.crt example.com.crt_20240219
# cp example.com-bundle.crt example.com-bundle.crt_20240219
#
# #ワークディレクトリへ移動 (※ワークディレクトリは任意の場所に事前に作成しておく)
# cd /home/admin/ssl_wk
#
# #秘密鍵からパスフレーズを抜く
# openssl rsa -in servername.key -out servername.key
Enter pass phrase for servername.key:(※秘密鍵生成時に使用したパスフレーズを入力)
writing RSA key
#
# #秘密鍵を格納
# \cp -f servername.key /etc/pki/tls/private/example.com.key
#
# #証明書を格納
# \cp -f example.com.crt /etc/pki/tls/certs/
#
# #中間証明書を格納
# \cp -f example.com-bundle.crt /etc/pki/tls/certs/

VirtualHostの確認

/etc/httpd/conf.d/ssl.confファイルの末尾に以下の記述があることを確認

# vi /etc/httpd/conf.d/ssl.conf
<VirtualHost *:443>
DocumentRoot /var/www/html/example.com
ServerName example.com:443
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
SSLCertificateChainFile /etc/pki/tls/certs/example.com-bundle.crt
ErrorLog logs/ssl_example.com-error_log
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
TransferLog logs/ssl_example.com -access_log
</VirtualHost>

WEBサーバの再起動

一連の作業が終わり、ssl.confファイルに問題が無ければ再起動

systemctl restart httpd

証明書有効期限の確認

※chromeの場合

1.ブラウザのアドレスバーに「https://」から始まるアドレスを入力
2.アドレスの左側に表示される鍵アイコンをクリック。
3.[この接続は保護されています]をクリック。
4.[証明書は有効です]をクリック
5.証明書ビューア画面が表示され、[有効期限]の表示が確認できます。