Let's Encrypt (以下LE)のcertbotで証明書を取得しようとしたときに、
Failed authorization procedure. hogehoge.scriptlife.jp (tls-sni-01): urn:acme:error:malformed :: The request message was malformed :: Failed to connect to xxx.xxx.xxx.xxx:443 for TLS-SNI-01 challenge: Server only speaks HTTP, not TLS
というエラーが出てきたときの対処です。
おそらくこのエラー、いろいろ原因があると思うので解決の参考になればと思いメモしておきます。
(hogehoge.scriptlife.jpは設定しているURL、xxx.xxx.xxx.xxxはIPアドレスに読み替えて下さい。)
スポンサーリンク
DocumentRootを/var/www/htmlに変更した
hogehoge.scriptlife.jpのSSL設定で、VirtualHostのDocumentRootに指定していたパスを、/var/www/html (CentOS7のAacheのデフォルトルート)に変更しました。
私の場合、このLEの対象にしようとしていたhogehoge.scriptlife.jpのVirtualHostで、CakePHPが動作していまして。
なのでLEが認証用の鍵を用意してもアクセスできなかったのではないかと思います。
エラーの内容からすると「HTTPSが有効になっていない」と言っているので、たまたまこれで通っただけかもしれませんが…
(このときの状態を少し書きますと、LEの動作をいろいろ試しており、hogehoge.scriptlife.jpのHTTPSサーバは一度取得した証明書で起動している状態でした)
(別のエントリでも書きますが、この後には他のエラーも出てきて結局無事完了とはいっていません)