今やHTTPSは「あれば良い」ではなく必須だ.保存もされず警告も出る.本記事はVPS上のアプリを独自ドメイン+無料SSLで公開する手順を,最短で示す.
対象はVPSでアプリを動かし始めた個人開発者.読み終えたとき,あなたのサービスは緑の鍵マーク付きで世界に公開されています.
なぜ常時HTTPSが必須なのか
ブラウザはHTTPサイトに「保護されていない通信」と表示する.信頼を売る個人開発のサービスにとって,この警告は致命傷だ.
さらにHTTPSはSEOのランキング要因でもあり,通信の盗聴・改ざんも防ぐ.無料で取れる以上,やらない理由が無い.
前提:ドメインのAレコードをVPSのIPに向ける
まずドメインのDNS設定で,AレコードをVPSのIPアドレスに向ける.反映には時間がかかることがあるので最初にやっておく.
反映確認
dig +short example.com # VPSのIPが返ればOKステップ1:Nginxを入れてリバースプロキシにする
Nginxを前段に置き,アプリ(例: 3000番)への振り分けを担わせる.これがHTTPS化と複数アプリ運用の土台になる.
/etc/nginx/sites-available/example.com
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}ステップ2:Certbotで無料SSL証明書を取る
Let’s Encryptの証明書をCertbotで取得する.コマンド一発でNginx設定のHTTPS化まで自動でやってくれる.
Certbot導入と証明書取得
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.comステップ3:HTTP→HTTPSの自動リダイレクトを確認
CertbotはHTTPからHTTPSへのリダイレクト設定も自動で追加してくれる.ブラウザでhttp://でアクセスし,https://に飛べば成功だ.
あわせてHSTSヘッダを追加すると,以降ブラウザが常にHTTPSで接続するようになり安全性が増す.
ステップ4:証明書の自動更新を確認する
Let’s Encryptの証明書は90日で失効する.Certbotはsystemdタイマーで自動更新を仕込むので,dry-runで動作を確認しておこう.
自動更新のテスト
sudo certbot renew --dry-run
systemctl list-timers | grep certbot補論:ドメインとサーバーの相性が,公開のスムーズさを決める
HTTPS化でつまずく原因の多くはDNS設定の混乱だ.ドメインの管理画面が分かりやすいほど,Aレコードの設定もトラブルシュートも速く済む.
公開先のVPSは表示速度に直結する.高速NVMe・50種類以上のOSテンプレートに対応した国内VPS─シン・VPS─ はNVMe SSDでレスポンスが軽く,SSL終端+アプリ+静的配信を1台で快適にこなせる.スナップショットを取ってからNginx設定を触れば,失敗しても即復旧できる.
ドメインは 取り扱い400種類以上のドメイン取得サービス─ムームードメイン─ で取得すると管理画面からDNSを直接いじれて分かりやすい.「ドメイン取得→Aレコード設定→Certbot」の流れが一本道で繋がる.
よくある質問
Q1:ワイルドカード証明書は取れる?
取れる.DNS-01認証を使えば *.example.com の証明書も取得できる.サブドメインを多用するなら検討の価値がある.
Q2:複数のアプリを1台で公開できる?
できる.Nginxでserver_nameごとに振り分ければ,1台のVPSで複数ドメイン・複数アプリをHTTPS公開できる.
Q3:証明書の更新を忘れて失効したら?
Certbotの自動更新が効いていれば基本的に失効しない.不安ならcertbot renewのタイマーが動いているか定期的に確認しよう.
まとめ ― HTTPS化は「信頼」を無料で手に入れる最短投資
Nginxで前段を作り,Certbotで証明書を取り,自動更新を確認する.この3ステップで,あなたのサービスは常時SSL+独自ドメインという信頼の最低ラインを満たす.
難しそうに見えて,実際は30分の作業だ.今日HTTPS化してしまえば,明日からは中身の改善だけに集中できる.