「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アプリの前段に配置する設定方法を解説します。



コメント