0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cent OS 7 / SSL証明書更新してみた ーWEBサーバー環境特定編ー

Last updated at Posted at 2025-09-11

最近のニュース:SSL証明書の有効期限が短くなる?

2025年4月に、CA/Browser Forum(証明書のルールを決める国際団体)が「SSL/TLS証明書の有効期限を段階的に短くしていく」という決定をしました。
これまではおよそ 398日(約13か月) の証明書が一般的でしたが、今後は次のようにどんどん短くなっていきます。

2026年3月以降 → 約200日

2027年3月以降 → 約100日

2029年3月以降 → なんと47日

なぜこんな変更をするのか?

理由はシンプルで、セキュリティを高めるためです。
もし証明書や秘密鍵が漏れてしまっても、有効期限が短ければリスクは限定的になります。
さらに、自動更新の仕組み(Let’s Encryptなど)を使うのが標準化されつつあり、昔のように「1年ごとに手動更新」するやり方は時代に合わなくなってきています。

SSL証明書とは?

SSL証明書は、ウェブサイトとユーザーの通信を暗号化するための「デジタル証明書」です。
具体的には以下の役割があります:

通信の暗号化(盗聴や改ざん防止)

ユーザーが https://example.com にアクセス

サーバーは 自分の公開鍵を含んだ証明書 をブラウザに送る

ブラウザは証明書を確認し、「OK」となれば公開鍵で秘密情報(セッション鍵=共通鍵)を暗号化してサーバーに送る

サーバーは自分の秘密鍵で復号し、セッション鍵を共有

以降の通信はそのセッション鍵(共通鍵暗号)で暗号化される

👉 ポイント:

「公開鍵暗号方式」で共通鍵を安全に渡す

「共通鍵暗号方式」で高速にやり取りする

サイトの真正性(そのサイトが正しい管理者のものである証明)

証明書には「このドメインは本当にこの組織が管理しています」という情報が入っています。

その証明書は 認証局(CA: Certificate Authority) が発行

ブラウザは「CAの公開鍵リスト(ルート証明書)」をもとに、その証明書が信頼できるかチェック

正しく署名されていれば「🔒」が出る

👉 ポイント:

認証局(CA)は「このドメインの持ち主を確認済み」というお墨付きを与える

ブラウザは「自分が信頼するCAが署名した証明書」だけを信用する

ブラウザに「鍵マーク🔒」を表示させる

ブラウザが接続要求

ユーザーが https://example.com にアクセスすると、ブラウザはサーバーに「安全に通信したい」とリクエストを送ります。

サーバーが証明書を提示

サーバーは「SSL証明書」をブラウザに送ります。

この証明書には以下が含まれています:

サイトの公開鍵

サイトのドメイン名情報

発行した認証局(CA)の署名

ブラウザが証明書を確認

証明書の有効期限、ドメイン名、認証局(CA)の署名が正しいかをチェック。

ブラウザに組み込まれた「信頼できるCAリスト」と照合。

問題なければ「この証明書はOK」と判断。

暗号化の鍵を安全に共有

ブラウザはサーバーの公開鍵を使って「共通鍵(セッション鍵)」を暗号化して送ります。

サーバーは自分の秘密鍵で復号し、共通鍵を手に入れます。

これで両者が同じ共通鍵を持つことになります。

共通鍵で通信開始

以降の通信は、効率の良い「共通鍵暗号方式」で暗号化されます。

内容を盗聴しても解読はほぼ不可能。

ブラウザに🔒マーク表示

「証明書が有効で信頼できる」+「安全な暗号化通信が成立」

この2つがそろった時にブラウザが🔒を表示します。

ニュースを受けて実際に更新してみた

前任者がいなくなって「とりあえず証明書だけ渡されたけど、WEBサーバーの管理者がいない」状況でしたので、まずは 環境を理解することからはじめました。

ステップ 1: サーバー環境を特定する

ps aux | grep -E 'httpd|apache2|nginx'

httpd や apache2 があれば → Apache
nginx があれば → Nginx

出力をみた感じNginxとApacheが両方動いていた。
Nginxをフロントのリバースプロキシとして使って、その裏にApacheを置いている構成の可能性が高い。
(よくある「Nginx =入口/SSL終端、Apache =アプリ処理」のパターン)

どちらがSSLを担当しているか調べる。

sudo grep -R "ssl_certificate" /etc/nginx/
sudo grep -R "SSLCertificateFile" /etc/httpd/

結果から分かったこと

Nginx が /etc/nginx/conf.d/users/... の設定で多数のドメインに対して ssl_certificate を指定している → つまり SSL終端(TLSハンドシェイクを処理する部分) は Nginx 側でやっている。

その裏で Apache (httpd) が動いているけど、Apache 側には SSLCertificateFile の記述がなく、通常の :80(HTTP)でアプリ処理をしている可能性が高い。

このパターンは cPanel/WHM が管理しているホスティング環境 でよくある「Nginxがフロント → Apacheが裏でPHPやアプリ処理」構成です。

cPanelで管理されているサーバーなので、CLIではなく、cPanel(WHM)の管理画面から更新することにした。

―次回 cPanel(WHM)を使ってSSL証明書の更新方法をまとめます。-

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?