今や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化してしまえば,明日からは中身の改善だけに集中できる.