2026年11月12日

2026年11月12日

VPSでSSLを設定してHTTPSサイトを公開する方法

はじめに

HTTPSを導入することで、ユーザーの情報を安全に保護し、信頼性のあるウェブサイトとして認知を得ることができます。本記事では、VPS上でWordPressサイトを運営している際に、SSL証明書を取得し、HTTPS設定を行うための手順について詳しく解説します。

症状・背景

このテーマが必要になる主な場面:

  • サイトにログイン情報を含むフォームがある場合
  • パーソナルデータやクレジットカード情報を利用するサービスを提供している場合
  • セキュリティ上のリスクを低減したい場合
  • Google検索結果で「Secure」マークが表示され、SEOの効果を得たい場合

手順・設定方法

ステップ1: SSL証明書の取得

Let's Encryptを使用して無料でSSL証明書を取得します。

# Let's Encryptのクライアントcertbotをインストール
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx

# ドメイン名に適切なDNSレコードが設定されていることを確認後、certbotを使用して証明書を取得します
sudo certbot --nginx -d example.com -d www.example.com

ステップ2: HTTPSの設定と再導入

Nginxを使用している場合、SSL証明書を利用してサイトをHTTPSで公開するための設定を行います。

# 現在のNginx構成ファイルをバックアップ
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

# HTTPS用に追加の構成ファイルを作成または編集します
sudo nano /etc/nginx/sites-available/example.com-ssl

# 次のように例のSSL設定を追加します(証明書と鍵のパスは適切な値に変更してください)
server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # SSLセキュリティ設定を追加
    include snippets/snakeoil.conf; 

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 新しい設定を有効にします
sudo ln -s /etc/nginx/sites-available/example.com-ssl /etc/nginx/sites-enabled/

ステップ3: レディレクトとセキュリティの強化

HTTPS接続を使用するようすべてのトラフィックをリダイレクトし、追加のセキュリティ設定を行います。

# 現在のNginx構成ファイルにHTTP -> HTTPSリダイレクトルールを追加します
sudo nano /etc/nginx/sites-available/example.com

server {
    listen 80;
    server_name example.com www.example.com;

    # HTTPからHTTPSへのリダイレクト
    return 301 https://$host$request_uri;
}

# 新しい設定を有効にします
sudo nginx -t
sudo systemctl restart nginx

ステップ4: SSL証明書の自動更新と監視

Let's Encryptの証明書は90日間の有効期間しかありませんが、certbotを使用して自動的に更新することができます。

# システムスケジューラに定期的な更新タスクを追加します(例: 毎月1日に実行)
sudo crontab -e

# 下記の行を追加します
0 0 1 * * /usr/bin/certbot renew --quiet

注意事項

  • SSL設定を行う前に、必ずバックアップを作成しておきましょう。
  • セキュリティポリシーに従って証明書の更新スケジュールを適切に設定してください。
  • パフォーマンス問題を避けるため、HTTPSでの負荷分散やSSLプロキシを使用することも検討します。
  • 監視ツールを導入し、SSL証明書の有効期限が切れる前に更新が必要になることを確認しましょう。

まとめ

1. Let's Encrypt: 安全で無料な証明書サービスです。VPS上でHTTPS設定を行う際には非常に便利です。

2. Nginxの構成ファイル: HTTPS用に適切に編集することで、セキュリティとパフォーマンスを向上させることができます。

3. 自動更新: 定期的に証明書が更新されるようにcronジョブを設定することが重要です。

4. セキュリティの強化: リダイレクトルールや追加のSSL設定によって、サイト全体にHTTPS接続が使用されます。

5. 監視と保守: SSL関連の問題を早期発見し対応するために、定期的なチェックが必要です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ
▲