サーバー構築

Let’s EncryptでSSL/HTTPS化する方法【無料・Nginx/Apache対応】

サーバー構築
記事内に広告が含まれています。

「Webサイトをhttpsにしたい」「ブラウザに鍵マークをつけるにはどうすれば?」そんな疑問をお持ちではないでしょうか。

この記事では、Let’s Encryptという無料のSSL証明書サービスを使って、LinuxサーバーのWebサイトをHTTPS化する手順を解説します。certbotというツールを使えば、コマンド数行で完了します。

SSL/HTTPSとは何か?

SSL(Secure Sockets Layer)とHTTPS(HTTP over SSL/TLS)は、ブラウザとサーバー間の通信を暗号化する仕組みです。身近な例で言うと、手紙を封筒に入れて送るようなものです。封筒がなければ(HTTP)中身が見えてしまいますが、封筒に入れれば(HTTPS)内容を盗み見されにくくなります。

HTTPSを使うべき理由は3つあります。セキュリティの向上(通信の暗号化)、SEO効果(Googleがhttpsを評価)、そしてブラウザの警告回避(httpサイトは「保護されていない通信」と表示される)です。

Let’s Encryptとは?

Let’s Encryptは、非営利団体が運営する無料のSSL証明書発行サービスです。以前はSSL証明書の取得に年間数万円かかることもありましたが、Let’s Encryptの登場で誰でも無料でHTTPS化できるようになりました。

特徴内容
料金完全無料
証明書の有効期限90日(自動更新可能)
対応主要ブラウザすべて対応
取得方法certbotで自動化可能

事前準備

作業前に以下を確認してください。

  • ドメインが取得済みで、サーバーのIPに向いていること
  • NginxまたはApacheが起動していること
  • ポート80(HTTP)が外部から接続できること

certbotのインストール

certbotはLet’s Encryptの証明書取得・更新を自動化するツールです。

sudo apt update
sudo apt install -y certbot python3-certbot-nginx

Apacheを使っている場合は python3-certbot-apache をインストールしてください。

SSL証明書の取得(Nginx)

sudo certbot --nginx -d your-domain.com -d www.your-domain.com

your-domain.com を自分のドメインに置き換えてください。メールアドレスの入力と利用規約への同意を求められます。成功すると、Nginxの設定が自動的にHTTPS用に書き換えられます。

証明書取得の確認

sudo certbot certificates

取得済みの証明書一覧と有効期限が表示されます。

自動更新の設定

Let’s Encryptの証明書は90日で期限が切れますが、certbotをインストールすると自動更新のcronジョブが登録されます。手動で確認・テストするには以下のコマンドを使います。

sudo certbot renew --dry-run

--dry-runオプションは実際には更新せず、更新処理が正常に動くかテストするものです。「Congratulations, all simulated renewals succeeded」と表示されれば自動更新は正常に動作しています。

HTTPからHTTPSへのリダイレクト設定

certbotが自動で設定してくれますが、手動で確認・追記したい場合はNginxの設定ファイルに以下を追加します。

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    return 301 https://$host$request_uri;
}

まとめ

  • Let’s Encryptは無料でSSL証明書を取得できるサービス
  • certbotをインストールして certbot --nginx を実行するだけでHTTPS化完了
  • 証明書は90日ごとに自動更新される
  • certbot renew --dry-run で自動更新の動作テストができる

次の記事では、NginxをリバースプロキシとしてNode.jsやPythonアプリの前段に配置する設定方法を解説します。

コメント

タイトルとURLをコピーしました