Linux + Apache SSLサーバ証明書更新

スポンサーリンク

Webサーバにてssl通信する場合は然るべき機関からサーバ証明書を発行してもらい、Webサーバで更新する必要がある。大まかな流れは下記となる。

  1. 秘密鍵の生成
  2. 秘密鍵を元にCSRを作成
  3. 証明書発行期間にCSRを使って発行手続き
  4. サーバで証明書の置き換え

秘密鍵の生成

CSRの発行には秘密鍵が必要となる。サーバ上で秘密鍵を生成する。その際、パスワードを聞かれるので任意のパスワードを入力する。このパスワードはCSR申請時などで使うので控えておく。なお、ここでは証明書の置き場は/etc/pki/tls/ssl.key/としている。

# openssl genrsa -des3 -out /etc/pki/tls/tec-memo2024.key 2048
Enter PEM pass phrase:★任意のパスワード
Verifying - Enter PEM pass phrase:★任意のパスワード再入力

/etc/pki/tls/ssl.key/ 配下に tec-memo2024.key というファイル作成される。

このままだと、Apacheを起動するたびにパスワード入力が必要となるので、秘密鍵からパスフェーズを削除する。

# openssl rsa -in tec-memo2024.key -out tec-memo2024.key

CSRファイル作成

CSR(Certificate Signing Request)ファイルを作成する。CSRファイルを元に証明書期間は証明書を発行することになるので、必ず必要となる。

# openssl req -new -key  /etc/pki/tls/ssl.key/tec-memo2024.key -out /etc/pki/tls/ssl.key/tec-memo.csr
(中略)
Country Name (2 letter code) [XX]:JP(国名)
State or Province Name (full name) []:Tokyo (都道府県)
Locality Name (eg, city) [Default City]:Minato-ku (市町村)
Organization Name (eg, company) [Default Company Ltd]:tec-memo Ltd(組織名称)
Organizational Unit Name (eg, section) []: System(部署名)
Common Name (eg, your name or your server's hostname) []:tec-memo.com(サーバ名)
Email Address []:メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

証明書発行手続き

発行機関によって手続き方法が異なる。手続きの際にCSRが必要となるので各機関の手順に従ってCSRファイルを送付することとなる。

サーバ証明書の置き換え

環境によってパスが異なる場合があるが、デフォルトだと /etc/httpd/conf.d/ssl.conf を書き換える。入手した証明書ファイルをWebサーバに配置し、パスを書き換える。中間証明書は必要に応じて、証明書発行期間から入手して配置し、パスを書き換える。

#証明書
SSLCertificateFile /etc/pki/tls/ssl.key/tec-memo2024.cert
#秘密鍵ファイル
SSLCertificateKeyFile /etc/pki/tls/ssl.key/tec-memo2024.key
#中間証明書
SSLCertificateChainFile /etc/pki/tls/ssl.key/inca2024.cert

反映のためにApacheの再起動する。

# systemctl restart httpd

コメント

タイトルとURLをコピーしました