こんばんは
毎日ジメジメしてて体中にカビが生えきた管理人のかいざーです
ようやく証明書更新が完了しました
前回と同じくJPRSの証明書をさくらVPSにインストール
しかし、2年後には絶対に忘れてる自信があるので備忘録としてメモしておきます
WebサーバーはNginxとApache
Centos7での作業です
.confの編集などはファイル名とディレクトリ名の変更のみで
おそらく説明の必要は無いと思いますのでここでは割愛します
1、申し込み
「更新!!」
って言うとポチポチポチで済んで簡単そうに思えるかもしれませんが
やってることは新規導入とほぼ一緒
強いて言うなら*.confの編集がファイル名書き換えだけなので楽な事ぐらい
まぁ、新規導入時の設定ファイルの最初の書き換えは
結構大変なんですけどね
さくらサーバーからあと何日の脅迫案内メールが来たら
リンクをクリックして画面の案内に従って証明書発行の申し込みをします
個人なら安心のJPRSドメイン認証型が安くてオススメ
そしてポチポチ押しながら申し込みが進むと突然出てくるCSR入力画面
ひさびさにやるとまずここでつまづく
2..keyファイルと.csrファイルの作成
鍵ファイルとCSRは事前に用意しておきましょう!
鍵ファイルとCSRは事前に用意しておきましょう!
鍵ファイルとCSRは事前に用意しておきましょう!
準備不足な方はこちら(管理人かいざーを含む)
CSRの作成は端末から
/etc/httpd/conf/ などに移動して
openssl genrsa -aes256 2048 > てきとうななまえ.key
で鍵ファイルを作成します
出来たファイルはCSR作成後
配下に ssl.key などの分かりやすい名前のディレクトリを作成し(更新時の年号を付けるととても分かりやすい)mvコマンドなどで移動して
さらにCPコマンドでバックアップを作成しておきましょう
最初に言っておきますが
CSRの申請後にこの鍵ファイル無くしたら終わりですよ!
過去に一度やらかしましたw
鍵ファイルが出来たら次はCSRを作成します
openssl req -new -key てきとうななまえ.key -out おもいついたなまえ.csr -sha256
で、.keyファイルを基に .csrファイルを作成します
いろいろ質問されるので
国名から市町村名まで入力
後はドメイン名を入力すれば他は空欄で大丈夫です
〇注意事項
・途中でパスワードの設定を聞かれますが
nginxの場合パスワードは後で使用することがありますので
一時的にメモするなどして必ず忘れないようにしてください
・www.を付けるか付けないかは厳格にチェックされるので
自分のサーバーに合わせたドメイン名を入力
wwwからリダイレクトしてたり、実サイトと違っていると接続時ブラウザのアドレスバーににエラーが表示されます
・サイト管理者のメールアドレスなどは入力するとCSR貼り付け画面で弾かれます
メールアドレスの入力はやめ
申請画面が次に進むまで何度も何度も何度もやり直ししましょう
ここまでの作業が終わったら
/etc/httpd/conf配下にディレクトリ csr2020.csr 、key2020.key (名前は何でもいい)などを作成して
使用、作成したファイルを移動し、それぞれバックアップしておきましょう
この時後から必要になる crtファイル用のディレクトリcrt2020.crtなども作っておくといいかもしれません
3.申請後
CSR貼り付け画面が無事通過し
申し込みが受理されると
契約サービス画面のメニューが増えます
申請が完了すると認証局から
「認証ファイルのアップロードお願い」
のメールが来ます
上の画像のメニューから認証ファイル(長くて無茶苦茶な名前のファイル)をダウンロードし
Webサーバーにメールに記載されていた指定された名前のフォルダーを作成し
そこにアップロードしましょう
作成するフォルダー名が少しでも違っていたり
Windowsで認証ファイルを二重にダウンロードしてファイル末尾が ***(1).txtになっていたりすると
確認が取れず、永遠に証明書が発行されません
気を付けましょう(俺の事だw)
4.証明書ダウンロードと.crt作成
ファイル配置の確認が完了されると数日中に
「証明書発行のお知らせ」
メールが来ます
再び契約サービス画面を出して、そこから認証ファイル(.crt)をダウンロードします
初期はserver.crtと言う名前なのでダウンロードしてcrtのフォルダーに移動したらわかりやすい名前にリネームしておくといいでしょう
発行元がJPRSの場合はサーバー証明書に中間証明書を合体させないといけないので
お知らせメールのリンクからJPRSのページに行き
中間証明書をダウンロードします
証明書ファイル(わかりやすいなまえ.crt)と中間証明書ファイルを同じフォルダーに配置し
catのリダイレクトで合体させます
cat 中間証明書のなまえ.cer >> わかりやすいなまえ.crt
.cerのファイルも.crtのファイルも何度でもダウンロードできるので
ミスっても大丈夫です
さて、ここで注意したいのは
合体したファイルは結合部分が
-----BEGIN CERTIFICATE----------END CERTIFICATE-----
とつながってしまっているので
間に改行を入れないとエラーになります
viなどのエディターで
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
になるように変更しましょう
5.ファイル配置と起動確認
.keyファイルと
結合した.crtファイル
をそれぞれディレクトリに配置し
nginxなら/etc/nginx/conf.d/default.confなど、apacheなら/etc/httpd/conf.d/ssl.confなど
両方使ってるなら両方
を編集し systemctl restart nginx(またはhttpd)
で無事起動すればOK
なのですが
nginxでは作成時に設定したパスワードが読み込めずパスワードエラー
SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl.key") failed (SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting p assword error:0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
が出ます
その場合は
openssl rsa -in 鍵ファイルのなまえ.key -out 鍵ファイルのなまえ.key
でパスフレーズを解除してください
このcsrファイル作成時に設定したパスワードの入力が必要になります
パスフレーズを自動で入力する方法もあるみたいですが
パスフレーズを書いたファイルとかあまり作りたくないので
無くてもいいかなと・・・・
systemctl restart nginx でエラーが出ず
systemctl status nginx で起動が確認できれば作業終了
httpdも同じように再起動&確認をしてください
お疲れさまでした
※2022年1月少し加筆しました。