私はまさにこの問題を抱えていましたが、TLS 証明書をロードする際のエラーにより、nginx が起動に失敗していたことが判明しました。このvagrant up
コマンドは、nginx の起動に失敗したことや、ポートのバインドに失敗したことを報告しません。
これを診断するために、次のことを行いました。
$ nmap homestead.app
Starting Nmap 7.01 ( https://nmap.org ) at 2017-10-03 16:16 NZDT
Nmap scan report for homestead.app (192.168.10.10)
Host is up (0.00077s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
1025/tcp open NFS-or-IIS
3306/tcp open mysql
5432/tcp open postgresql
リストにポート 80 がありません。ポート 80 を再確認してみましょう。
$ nmap homestead.app -p 80
...
Host is up (0.00020s latency).
PORT STATE SERVICE
80/tcp closed http
だから閉まっているのは確かです。ゲスト ログは何を示していますか? vagrant ssh
と...
$ systemctl status nginx.service
...
Active: failed (Result: exit-code) since Tue 2017-10-03 03:06:12 UTC; 1min 30s ago
...
homestead systemd[1]: Starting A high performance web server and a reverse proxy server...
homestead nginx[1250]: nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/ssl/homestead.app.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICA
homestead nginx[1250]: nginx: configuration file /etc/nginx/nginx.conf test failed
homestead systemd[1]: nginx.service: Control process exited, code=exited status=1
homestead systemd[1]: Failed to start A high performance web server and a reverse proxy server.
homestead systemd[1]: nginx.service: Unit entered failed state.
homestead systemd[1]: nginx.service: Failed with result 'exit-code'.
Nginx の構成にエラーがあるため、Nginx を起動できませんでした。エラーはファイルPEM_read_bio_X509_AUX
を指してい/etc/nginx/ssl/homestead.app.crt
ます。そのファイルは構成でどこで使用されますか?
$ sudo vim /etc/nginx/sites-enabled/homestead.app
関連する行をコメントアウトしました:
@@ -1,6 +1,6 @@
server {
listen 80;
- listen 443 ssl http2;
+# listen 443 ssl http2;
server_name homestead.app;
root "/home/vagrant/Code/public";
@@ -42,7 +42,7 @@ server {
deny all;
}
- ssl_certificate /etc/nginx/ssl/homestead.app.crt;
- ssl_certificate_key /etc/nginx/ssl/homestead.app.key;
+# ssl_certificate /etc/nginx/ssl/homestead.app.crt;
+# ssl_certificate_key /etc/nginx/ssl/homestead.app.key;
}
で nginx を起動し、ホストから再度$ sudo service start nginx
実行します。nmap
$ nmap homestead.app -p 80,443
...
PORT STATE SERVICE
80/tcp open http
443/tcp closed https
ポート 80 が開いており、 http://homestead.appからアクセスできるはずです。もちろん、TLS は機能しませんが、新しい証明書を生成することで修正できるはずです。そもそも証明書の読み込みに失敗した理由がわかりません。