さくらVPSでKUSANAGi導入後、Let’s EncryptによるSSL証明書が取得できずにつまづきました。同時にブラウザからも接続できず、WordPressのインストール作業も困難に。
結果、SSL証明書の問題は解決できなかったのですが、さくらVPS独自のファイアウォール機能である「パケットフィルタ」の設定を行うことでブラウザからの接続はクリアすることができまいsた。下記、過程を共有します。
- さくらVPSでKUSANAGIのセットアップを順調に進めるが…!
- let's encryptが取得できないエラー
- ファイアウォールのポートが開放されているか確認
- さくらVPSには、Firewalldやiptablesとは別にさくらVPS側でのファイアウォール機能「パケットフィルタ」がある
- それでもSSL証明書が取得できない問題は解決せず…。ただしブラウザ経由でのアクセスは可能に
さくらVPSでKUSANAGIのセットアップを順調に進めるが…!
さくらVPSでKUSANAGIイメージにて初期インストール。その後、SSHにてサーバへ入り
$ yum update
$ kusanagi init
$ kusanagi provision [provision name]
と無事に進めていっていました。
参考: 【WordPressのサーバOS変更】ブログをさくらVPS、kusanagi環境に引っ越し。|しらたマイティー
let's encryptが取得できないエラー
しかし、SSL化の部分が取得に失敗。下記コマンドで再度の取得を実行します。
$ kusanagi ssl --email youremail.com [設定したプロビジョン名]
今回、テスト環境にて立ち上げたこともあり、wwwサブドメインでドメインのAレコードを設定していませんでした。しかし、let's encryptは(条件によって)wwwサブドメインの情報を取得しにいくようです。
【Let’s Encrypt / KUSANAGI】SSL証明書の自動更新ができず、苦労した話 – Chronoir.net
さくらVPSにkusanagiを入れてLet’s Encryptで苦戦した話 | notabo
$ kusanagi ssl --email [email protected] provision-name
(略)
Some challenges have failed.
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain:
Type: connection
Detail: Fetching
Timeout during connect (likely firewall problem)
Domain: www.
Type: connection
Detail: Fetching
http://www.
Timeout during connect (likely firewall problem)
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
Cannot get Let\'s Encrypt SSL Certificate files.
Failed.
ファイアウォールのポートが開放されているか確認
httpsのポート(443)が開放されていない場合はiptablesで適宜開放するようにします。
下記コマンドで、80, 443番ポートが空いているか確認。
$ ss -tln
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:443 *:*
LISTEN 0 128 127.0.0.1:2812 *:*
LISTEN 0 128 [::]:3306 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 32 [::]:21 [::]:*
うーん、80番も443番も空いていますね…!
nginx - Nginx起動するが80番でコネクション確立しない|teratail
さくらVPSには、Firewalldやiptablesとは別にさくらVPS側でのファイアウォール機能「パケットフィルタ」がある
さくらのVPSには「パケットフィルタ」という機能があります。 サーバのFirewalldやiptablesとは別に、さくらのVPS側でファイアウォール機能を提供しています。こちらで許可をしていない可能性があります。 パケットフィルタは、以下の手順で確認できます。 「さくらのVPS上のサーバ一覧から該当のサーバをクリック」 → 「パケットフィルタタブ」 初期設定では、SSH接続用の22番のみ許可になっており、それ以外は拒否されます。
nginx - Nginx起動するが80番でコネクション確立しない|teratail
いや、そんなこと知りませんでした…!神回答です。
サーバー選択 > グローバルネットワークタブに「パケットフィルタ」がありました…!
接続可能ポートを追加
追加の後、「設定」を押すのを忘れないようにしましょう。
サーバー画面で下記のように、接続可能ポートが追加されていたらOKです。
それでもSSL証明書が取得できない問題は解決せず…。ただしブラウザ経由でのアクセスは可能に
結局、Let’s encryptによってSSL証明書が取得できない問題は解決しませんでした。 もはやプロファイルを作成しなおす方がいいかも?
ただ、さくらVPSのパケットフィルタにWebを追加したことで、ブラウザからも接続確認できなかった問題は解決。
ほか参考:
【さくらインターネット】さくらのVPSのKUSANAGIで後からSSL化する方法 | webヘルプサポート
wordpressのインストール先の変更 | KUSANAGIユーザーグループ