2026年6月16日
2026年6月16日
自己署名SSL証明書を作成する方法
はじめに
自己署名SSL証明書は、ウェブサイトを安全なHTTPS通信に変更するために必要な第一歩です。ただし、Googleなどの検索エンジンでは未確認の証明書を使用したサイトは警告表示されるため、実用的には一時的な解決策となります。しかし、開発途中やテスト環境では非常に便利です。
症状・背景
- テストウェブサイトをHTTPSで動作させたい
- 自分自身にSSL証明書が必要
- 安全な通信を確立したいが、費用をかけたくない
手順・設定方法
ステップ1: OpenSSLを使用して自己署名SSL証明書を作成
# OpenSSLを使用した自己署名証明書の生成
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
# パスワードなしで生成するため-nodesオプションを使用
ステップ2: 証明書の詳細を設定
# 設定ファイルを作成して必要な情報を入力
nano /etc/ssl/private/nginx-selfsigned.cnf
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
[ req_distinguished_name ]
C=JP
ST=Tokyo
L=Shibuya
O=MyCompany
CN=localhost
emailAddress=admin@localhost.local
[ req_ext ]
subjectAltName=DNS:localhost,DNS:example.com,IP:127.0.0.1
ステップ3: 証明書の有効期限を延長
# 有効期限を5年分延長する
openssl x509 -in /etc/ssl/certs/nginx-selfsigned.crt -text -noout | grep Validity
ステップ4: WordPressサイトで証明書を使用する
# Nginxでの設定変更例
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;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
location / {
# WordPressの設定
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
注意事項
- 証明書は自社で生成したため、信頼性が低いため警告が出る可能性がある。
- HTTPSに変更すると一部機能(キャッシュなど)が正常に動作しない場合もある。
- 有効期限の延長は定期的に行うことを忘れないこと。
まとめ
1. 自己署名SSL証明書: 自社で作成し、基本的なセキュリティを確保する
2. 生成コマンド: OpenSSLを使用して簡単に行える
3. 設定ファイル: 証明書の詳細情報を入力する必要がある
4. Nginx設定: SSL証明書とキーを正しく設定する
5. 有効期限: 期間が切れる前に更新すること
関連記事: