WordPressブログを作成した後、ブログをHttps化するのはもはや必須となっていて、誰でも1度はハマるポイントかと思います。
私もハマりました・・・笑
検索すると沢山の情報が出てくる為、自分の環境ではどの手順が正しいのか初心者程判断が難しいと思います。
今回はBitnami NGINXを使用して動かしている環境をHttps化する手順を調べ、実際に当ブログを Https 化する為に実施した内容となります。
bitnamiのHowToに記載されている情報ですが、日本語で解説している記事がなかったので、備忘録を兼ねて紹介します。
英語が得意な方は直接HowToを読んだほうが早いかもしれませんので、リンクも貼っておきます。
Bitnami NGINX環境をお使いの方は本記事を読みながら設定してみてください。
準備:Bitnamiスタックのファイル構造と構成を確認する
お使いのBitnamiが『ネイティブLinuxシステムパッケージを使用するタイプ(アプローチA)』か、もしくは『自己完結型インストールのタイプ(アプローチB)』かによって実行するコードが変わってきます。
以下のコードを実行しアプローチAかアプローチBのどちらなのかを確認します。
- Powerユーザーとしてサーバーコンソールにログインします。
- 次のコマンドを実行してお使いの環境がアプローチAなのかアプローチBなのかを確認します。
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
実行すると、「Approach A」か「Approach B」のどちらかが実行結果として表示されますので覚えておいて下さい。
手順1:レゴクライアントをインストールする
- 次のコマンドを実行して、レゴクライアントをインストールします。
コード内の【XYZ】を、ダウンロードした実際のバージョン番号に置き換える必要があります。
※3行目のこの部分→「lego_vX.Y.Z_linux_amd64.tar.gz」
cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
tar xf lego_vX.Y.Z_linux_amd64.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego
手順1では、レゴクライアントをダウンロードして展開し、指定のディレクトリにコピーしました。
手順2:ドメインのLet’sEncrypt証明書を生成する
- すべてのBitnamiサービスをオフにします。
sudo /opt/bitnami/ctlscript.sh stop
- 以下のようにドメインの新しい証明書をリクエストします。
重要:DOMAINプレースホルダーを実際のブログのドメイン名に置き換え、EMAIL-ADDRESSプレースホルダーをあなたのメールアドレスに置き換えてください。
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" run
EMAIL-ADDRESS → あなたのメールアドレス
DOMAIN → あなたのブログのドメイン
- 利用規約に同意します。
これで、証明書のセットが/ opt / bitnami / letsencrypt / certificatesディレクトリに生成されます。このセットには、サーバー証明書ファイルDOMAIN.crtとサーバー証明書キーファイルDOMAIN.keyが含まれています。
手順3:Let’sEncrypt証明書を使用するようにWebサーバーを構成する
使用しているWebサーバーに応じて、新しいSSL証明書と証明書キーファイルを正しい場所にリンクします。ファイルのアクセス許可を更新して、rootユーザーのみが読み取れるようにします。
ここで準備手順で確認したアプローチA、アプローチBによって実行するコマンドが変わります。
- 調べたアプローチによって、以下のどちらかのトグルの内容を実行して下さい。
- 次のコマンドを実行します。
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.csr /opt/bitnami/nginx/conf/bitnami/certs/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo chown root:root /opt/bitnami/nginx/conf/bitnami/certs/server*
sudo chmod 600 /opt/bitnami/nginx/conf/bitnami/certs/server*
- 次のコマンドを実行します。
sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo chown root:root /opt/bitnami/nginx/conf/server*
sudo chmod 600 /opt/bitnami/nginx/conf/server*
- すべてのBitnamiサービスを再起動します。
sudo /opt/bitnami/ctlscript.sh start
手順4:構成をテストする
- ブラウザにて頭をhttpsにしたURLでページにアクセスします。
https:// DOMAIN(DOMAINプレースホルダーを正しいドメイン名に置き換える)
例.https://minamika.page - 正常にページが表示され、URLバーのURL横に「鍵マーク」が付いていることを確認し、それを押してみます。
証明書(有効)となっていれば成功です。

手順5:Let’sEncrypt証明書を更新する
Let’sEncrypt証明書は90日間のみ有効です。
手動で更新するのは手間なので、次の手順で有効期限が切れる前に自動的に証明書を更新されるように設定しましょう。
- /opt/bitnami/letsencrypt/scripts/renew-certificate.shでスクリプトを作成します。
sudo mkdir -p /opt/bitnami/letsencrypt/scripts
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
- 次の内容をスクリプトに入力して保存します。
DOMAINプレースホルダーを実際のドメイン名に置き換え、EMAIL-ADDRESSプレースホルダーをメールアドレスに置き換えることを忘れないでください。
#!/bin/bash
sudo /opt/bitnami/ctlscript.sh stop nginx
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start nginx
EMAIL-ADDRESS → あなたのメールアドレス
DOMAIN → あなたのブログのドメイン
- スクリプトを実行可能にします。
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
- 次のコマンドを実行して、crontabエディターを開きます。
sudo crontab -e
- 次の行をcrontabファイルに追加して保存します。
0 0 1 * * sudo sh /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
最後に
お疲れさまでした。無事にHttps化できたでしょうか?
手順を順に実行するだけなので、割と簡単だったと思います。
注意点は最初にアプローチを確認する点と、実行コマンド内のDOMAINやEMAIL-ADDRESSを自分用に書き換えないと行けない点です。
それさえ間違えなければ、ちゃんとHttps化できていると思います。