MENU

Apacheの再起動時にパスフレーズがわからなくててんやわんやした話する?

2020 3/24

客先のサーバーで複数ドメインを運用しているサーバーにSSLを導入するということで、作業を開始。すでにいくつかSSL(ブランドバラバラ)が導入されているドメインがあったのだが、秘密鍵のパスフレーズの存在を抜かっていた。

今回導入する予定のSSLはLet’s Encryptで秘密鍵を設定してあったドメインも今回、Let’s Encryptに移行予定だったので事なきを得た。これ、移行対象じゃなかったら、すでに適用されているSSLの情報を聞いていなかったので半日以上サーバー復旧できないことになってたかもしれない。汗

一通りLet’s Encryptの導入準備を進めていて、試しに1サイトにSSL化設定を施して、何の気なしにservice httpd restartしちゃったのが運の尽き。

パスフレーズがあるならシェルスクリプトに平文設定して読み込む設定にでもしてくれていたらよかったのに(というかそうしとかないと結局どっかに付箋はるようなことになるだけなので無駄なnry…)

まあ、なんにしてもきちんと確認しきっていなかった自分が悪いんですが。とにもかくにも不意にこういうことやってしまうことってありますよね。そんなときの対処法です。

目次

パスフレーズを忘れたら

CSR作成し直して、証明書を再発行するしかない

SSLの取得時に生成した秘密鍵のパスフレーズなんていちいちメモしている人っているのかな。いたとしてもかなり稀だし、聞いてもすぐに出てくるかどうかって怪しい。特にこうして外注してるような管理者の場合、聞くだけ無駄な場合が多いであろうから、パスフレーズがなんだったかを探るより、とっとと証明書の再発行をしましょう。

秘密鍵を作成する

秘密鍵を置く場所はどこでも良いのですが、一元管理するために適当な場所を決めた方がいいでしょう。CentOS6系の場合/etc/pki/配下に置くのが一般的でしょうか。ちなみにpkiとはPublic Key Infrastructureの略です。基本的にはここに公開鍵/秘密鍵を置いておきます。

# 通常の秘密鍵の作成(-des3はパスフレーズを指定するオプション)
$ openssl genrsa -des3 -out ./ssl.key/xxxxxxx.key 2048

# 最初からパスワードなしで作成する場合はこちら
$ openssl genrsa -out ./ssl.key/xxxxxxx.key 2048

# 証明書の発行に使うなら以下のディレクトリに作るのがよさげ
$ openssl genrsa -aes256 -out /etc/pki/CA/private/cakey.pem 2048

ちなみに鍵は.keyファイルだが.pem表記のこともある。pemはrsaで暗号化されたファイルの拡張子。

.pemrsa暗号方式で暗号化されたファイル
以下3つのファイルはすべて.pemで置き換えらることが多い
.key秘密鍵
.csr証明書発行要求のファイル
.crt認証局が署名した証明書のファイル

秘密鍵のパスワードを解除する

# パスワードを解除する
$ openssl rsa -in xxxxxxx.key -out xxxxxxx.key

CSRを作成する(証明書発行要求)

# 作成した秘密鍵をもとに証明書発行要求ファイルを作成する
$ openssl req -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.csr

証明書を取得する(オレオレ認証局)

# オレオレ認証局として自分で自分を証明する
$ openssl x509 -days 3650 -in /etc/pki/CA/cacert.csr -req -signkey /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem

証明書を取得する(有料証明書を使用している場合)

証明書を発行しているベンダーの指示に従いCSRを提供する

証明書を取得する(Let’s Encryptの場合)

CentOS6にLet’s Encryptを適用する場合

あわせて読みたい
CentOS6.xにLet’s Encryptをインストールする
CentOS6.xにLet’s Encryptをインストールする【事前準備・前提条件】今回は客先のサーバーの環境を前提条件に進めていく。#centosのバージョン確認cat /etc/redhat-releaseCentOS 6.xApache 2.2系既存のサーバーに...

無事、証明書を再発行できたら

作成した証明書を参照するようにApacheのVirtualHostディレクティブを修正し、構文チェック、再起動!

# *.confファイルの構文チェックを行う
$ apachectl -t

# apacheの再起動
$ service httpd restart

この記事が気に入ったら
フォローしてね!

りょま

本職:教える人,スキル:プログラミング,趣味:音楽

コメント

コメントする

目次
閉じる