サーバー/インフラ

【2025年版】サーバー証明書とは?SSL/TLSの仕組み|WordPress設定方法と選び方を解説

サーバ証明書とは何か?ウェブサイトにおける暗号化通信の仕組みと必要性

はじめに

Webサイトを運営する上で、「このサイトは安全ではありません」という警告を見たことはありませんか?

2025年現在、サーバー証明書(SSL/TLS証明書)の導入は必須です。Google Chromeは証明書のないサイトに警告を表示し、検索順位も下がります。

本記事では、サーバー証明書の基本から、WordPress での設定方法、証明書の選び方まで、初心者にもわかりやすく解説します。

この記事でわかること:

  • サーバー証明書の基本と仕組み
  • SSL/TLS暗号化通信の仕組み
  • WordPress での設定方法(ConoHa WING・エックスサーバー対応)
  • 証明書の種類と選び方
  • よくある失敗と解決方法

1. サーバー証明書とは?

サーバー証明書の定義

サーバー証明書(SSL/TLS証明書) とは、Webサイトの運営者の身元を証明し、通信を暗号化するための電子証明書です。

認証局(CA: Certificate Authority)と呼ばれる第三者機関が発行します。

主な役割:

  1. 通信の暗号化: ブラウザとサーバー間の通信を暗号化
  2. サイトの実在証明: Webサイト運営者の身元を証明
  3. なりすまし防止: 第三者による偽サイトを防止

HTTPSとHTTPの違い:

項目 HTTP HTTPS
暗号化 なし あり(SSL/TLS)
URLの表示 http:// https://
ブラウザ表示 ⚠️ 警告表示 🔒 鍵マーク
SEO評価 低い 高い
クレジットカード決済 不可

2. SSL/TLSの暗号化通信の仕組み

HTTPSの仕組み

HTTPS(Hypertext Transfer Protocol Secure)は、HTTP通信をSSL/TLSプロトコルで暗号化したものです。

通信の流れ:

1. クライアント(ブラウザ)がサーバーに接続
   ↓
2. サーバーがサーバー証明書を送信
   ↓
3. クライアントが証明書を検証
   ↓
4. 公開鍵でセッション鍵を暗号化して送信
   ↓
5. セッション鍵で通信を暗号化(共通鍵暗号方式)
   ↓
6. 安全な通信開始

SSL/TLS暗号化通信の仕組み

クライアント(ブラウザ)とサーバー間の安全な通信確立まで

STEP 1

接続要求

クライアント(ブラウザ)がHTTPSでサーバーに接続要求

→ https://example.com にアクセス

STEP 2

サーバー証明書の送信

サーバーがSSL/TLS証明書をクライアントに送信

証明書に含まれる情報: 公開鍵、発行者(認証局)、有効期限

STEP 3

証明書の検証

クライアントが証明書の正当性を検証

確認項目: 認証局の署名、有効期限、ドメイン名一致

STEP 4

セッション鍵の生成と暗号化

クライアントがセッション鍵(共通鍵)を生成し、サーバーの公開鍵で暗号化して送信

公開鍵暗号方式を使用(安全だが処理が遅い)

STEP 5

セッション鍵の復号化

サーバーが秘密鍵でセッション鍵を復号化

これでクライアントとサーバーが同じセッション鍵を共有

STEP 6

暗号化通信開始 🔒

セッション鍵を使って安全な通信を開始

共通鍵暗号方式を使用(高速で効率的)

ポイント: 公開鍵暗号方式(安全だが遅い)でセッション鍵を交換し、共通鍵暗号方式(高速)で実際の通信を暗号化することで、安全性と速度を両立しています。

公開鍵暗号方式とは?

SSL/TLSは公開鍵暗号方式共通鍵暗号方式を組み合わせています。

公開鍵暗号方式:

  • 公開鍵: 誰でも入手可能(暗号化に使用)
  • 秘密鍵: サーバー管理者のみ保持(復号化に使用)

共通鍵暗号方式:

  • セッション鍵(一時的な鍵)で通信を暗号化
  • 処理速度が速い

なぜ2つの方式を使う?

  • 公開鍵暗号方式: 安全だが処理が遅い → セッション鍵の交換のみに使用
  • 共通鍵暗号方式: 高速だが鍵の共有が難しい → 実際の通信に使用

3. サーバー証明書の種類と選び方

サーバー証明書には、認証レベルによって3種類あります。

証明書の種類比較

種類 認証レベル 発行速度 費用 適用サイト
DV証明書
(Domain Validation)
ドメイン所有確認のみ 数分〜数時間 無料〜数千円/年 個人ブログ、小規模サイト
OV証明書
(Organization Validation)
企業実在確認 数日〜1週間 数万円/年 企業サイト、ECサイト
EV証明書
(Extended Validation)
厳格な企業実在確認 1〜2週間 10万円〜/年 金融機関、大企業

その他の種類:

  • ワイルドカード証明書: サブドメイン全体をカバー(例: *.example.com
  • マルチドメイン証明書: 複数ドメインを1つの証明書でカバー

【2025年版】証明書の選び方

1. 個人ブログ・小規模サイト → DV証明書(無料)

  • Let’s Encrypt(無料)
  • レンタルサーバー付属の無料SSL

2. 企業サイト・ECサイト → OV証明書

  • GMO GlobalSign
  • サイバートラスト
  • DigiCert

3. 金融機関・大企業 → EV証明書

  • DigiCert EV
  • GMO GlobalSign EV

2025年の最新動向:

  • WHOIS認証が2025年7月に停止(JPRS・GMO GlobalSign)
  • 証明書の有効期間が短縮化傾向(現在90日が主流)
  • Let’s Encrypt の自動更新が標準化

4. WordPressでのサーバー証明書設定方法

方法1: レンタルサーバーの無料SSL(推奨)

多くのレンタルサーバーは無料SSL証明書(Let’s Encrypt)を提供しています。

ConoHa WINGでの設定手順

1. ConoHa WINGコントロールパネルにログイン
2. 「サイト管理」→「サイトセキュリティ」をクリック
3. 「無料独自SSL」の「利用設定」を「ON」に変更
4. 自動的にSSL証明書が発行される(数分〜数時間)
5. WordPressの設定を変更(後述)

エックスサーバーでの設定手順

1. サーバーパネルにログイン
2. 「SSL設定」をクリック
3. 「独自SSL設定追加」タブを選択
4. ドメインを選択して「確認画面へ進む」
5. 「追加する」をクリック
6. SSL証明書が発行される(最大1時間)

確認コマンド(ターミナル):

# SSL証明書の有効期限を確認
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -noout -dates

# 出力例:
# notBefore=Oct 25 00:00:00 2025 GMT
# notAfter=Jan 23 23:59:59 2026 GMT

方法2: WordPressプラグインで簡単設定

SSL証明書を取得した後、WordPress内のURLをHTTPSに変更する必要があります。

推奨プラグイン: Really Simple SSL

1. WordPressダッシュボード → プラグイン → 新規追加
2. 「Really Simple SSL」を検索してインストール
3. 「有効化」をクリック
4. 「はい、SSLを有効化します」をクリック
5. 自動的にHTTP → HTTPSにリダイレクト設定完了

手動での設定(プラグインを使わない場合):

wp-config.php に追加:

// WordPress アドレスとサイトアドレスをHTTPSに変更
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

// SSL接続を強制
define('FORCE_SSL_ADMIN', true);

.htaccess に追加(HTTPからHTTPSへのリダイレクト):

# HTTPSリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

5. Apache・Nginxでのサーバー証明書設定

Apache での設定例

/etc/httpd/conf.d/ssl.conf:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    # SSL証明書のパス
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

    # セキュリティ設定
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>

設定後の再起動:

# Apache再起動
sudo systemctl restart httpd

# 設定の確認
sudo apachectl configtest

Nginx での設定例

/etc/nginx/sites-available/example.com:

server {
    listen 443 ssl http2;
    server_name example.com;

    # SSL証明書のパス
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # セキュリティ設定
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers on;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}

# HTTPからHTTPSへのリダイレクト
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

設定後の再起動:

# Nginx設定の確認
sudo nginx -t

# Nginx再起動
sudo systemctl restart nginx

6. よくある失敗5つと解決方法

失敗1: 混在コンテンツ(Mixed Content)エラー

症状:

  • HTTPSページ内にHTTP画像・CSSが含まれている
  • ブラウザで「一部のコンテンツが安全ではありません」と表示

解決方法:

// すべてのHTTPリンクをHTTPSに変換(JavaScript)
document.querySelectorAll('img, script, link').forEach(function(el) {
  if (el.src && el.src.indexOf('http://') === 0) {
    el.src = el.src.replace('http://', 'https://');
  }
});

WordPressの場合:

-- データベース内のHTTPをHTTPSに一括置換
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com');
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');

失敗2: 証明書の有効期限切れ

症状:

  • 「この証明書は有効期限が切れています」エラー

解決方法(Let’s Encrypt自動更新):

# 自動更新のcron設定
sudo crontab -e

# 毎月1日の午前3時に更新チェック
0 3 1 * * /usr/bin/certbot renew --quiet

失敗3: サーバー名不一致(Name Mismatch)

症状:

  • 証明書のドメイン名とアクセス先のドメイン名が一致しない

解決方法:

  • 証明書のCommon Name(CN)を確認
  • ワイルドカード証明書を使用する
  • マルチドメイン証明書(SAN証明書)を使用

失敗4: 中間証明書の設定漏れ

症状:

  • スマホでは表示されるが、古いブラウザでエラー

解決方法:

# Apache: 中間証明書を設定
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
# Nginx: fullchain.pem を使用
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

失敗5: リダイレクトループ

症状:

  • ページが無限にリダイレクトされてアクセスできない

解決方法(WordPress):

// wp-config.php に追加
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

7. サーバー証明書の確認方法

ブラウザでの確認方法

1. ブラウザでサイトにアクセス
2. アドレスバーの🔒鍵マークをクリック
3. 「証明書」または「接続は保護されています」をクリック
4. 証明書の詳細を確認

確認すべき項目:

  • 発行先(Common Name)
  • 発行者(認証局)
  • 有効期限
  • 証明書の種類(DV/OV/EV)

オンラインツールでの確認

SSL Server Test(Qualys):

https://www.ssllabs.com/ssltest/

評価項目:

  • 証明書の有効性
  • プロトコル対応状況(TLS 1.2/1.3)
  • 暗号化強度
  • セキュリティスコア(A+が最高)

8. よくある質問(Q&A)

Q1. 無料SSL証明書(Let’s Encrypt)と有料証明書の違いは?

A: 暗号化強度は同じです。違いは以下の通りです:

項目 Let’s Encrypt(無料) 有料証明書
暗号化強度 ◎ 同じ ◎ 同じ
認証レベル DV(ドメイン認証)のみ DV・OV・EV
有効期間 90日(自動更新) 1年〜
サポート なし あり
推奨サイト 個人ブログ、小規模 企業サイト、ECサイト

個人ブログなら Let’s Encrypt で十分です。

Q2. SSL証明書とTLS証明書は違うの?

A: 実質的には同じです。

  • SSL: Secure Sockets Layer(古い規格)
  • TLS: Transport Layer Security(新しい規格)

現在はTLS 1.2/1.3が主流ですが、慣習的に「SSL証明書」と呼ばれています。

正確には「SSL/TLS証明書」または「サーバー証明書」と呼びます。

Q3. サーバー証明書を導入するとSEOに効果はある?

A: はい、あります。

Google は2014年からHTTPS をランキング要因として採用しています。

SEO効果:

  • 検索順位が上がる(わずかだが確実)
  • ブラウザの警告が消え、離脱率が下がる
  • クリック率(CTR)が上がる

データ:

  • HTTPSサイトはHTTPサイトより検索順位が平均5-10%高い
  • Chrome は HTTP サイトに「保護されていません」と警告表示

Q4. 証明書の有効期限が切れたらどうなる?

A: ブラウザでエラーが表示され、アクセスできなくなります。

影響:

  • 「この接続ではプライバシーが保護されません」エラー
  • ユーザーが離脱
  • SEO評価が下がる

対策:

  • Let’s Encrypt の自動更新を設定(cron)
  • 有効期限の30日前にアラート設定

Q5. ワイルドカード証明書はいつ使う?

A: 複数のサブドメインがある場合に便利です。

例:

  • example.com
  • blog.example.com
  • shop.example.com
  • api.example.com

ワイルドカード証明書(*.example.com)1つで全サブドメインをカバー可能。

費用:

  • Let’s Encrypt: 無料(certbot certonly --manual --preferred-challenges dns -d "*.example.com"
  • 有料: 年間1万円〜

まとめ

サーバー証明書(SSL/TLS証明書)は、2025年現在すべてのWebサイトに必須です。

重要ポイント:

  1. 暗号化 + 実在証明の2つの役割
  2. 個人ブログならLet’s Encrypt(無料)で十分
  3. WordPress ならReally Simple SSLプラグインで簡単設定
  4. 証明書の有効期限管理を忘れずに
  5. 混在コンテンツ(Mixed Content)に注意

次のステップ:

  1. レンタルサーバーで無料SSLを有効化
  2. WordPressプラグインで HTTP → HTTPS リダイレクト設定
  3. SSL Server Test でセキュリティスコア確認
  4. 自動更新の設定

HTTPSは、ユーザーの信頼を得るための必須投資です。今すぐ導入しましょう!

関連記事

301リダイレクトとは?効果的な使い方と実装方法
301リダイレクトとは?302との違いやWordPressでの設定方法を解説【2025年版】301リダイレクトとは何か、302リダイレクトとの違い、WordPressや.htaccessでの設定方法を初心者向けに解説。SEO評価を引き継ぐための正しい実装方法とよくある失敗パターンを紹介します。...
【初心者向け】OGPとは?Web制作者が知っておきたい基礎知識と設定方法
OGPとは?【2025年版】WordPressでの設定方法|SNSシェアを最適化する完全ガイドOGP(Open Graph Protocol)とは?SNSシェア時の表示を最適化してCTRを2-3倍向上させる方法を解説。WordPressでのプラグイン設定・手動設定、画像サイズ、確認方法まで初心者向けに完全ガイド。...
完全初心者でも分かる!Webサーバーの基本的な仕組みと使い方
【2025年版】Webサーバーの仕組みとは?初心者向けに図解で解説|Apache・Nginx・種類と選び方 Webサーバーの仕組みを初心者向けに図解で解説。Apache・Nginx・IIS・LiteSpeedの違い、リクエスト-レスポンスサイクル、実際の設定例(httpd.conf/nginx.conf)を具体的に紹介。Web制作者必見。...