HTTPS 不适用于 Vagrant (Ubuntu 16.04 sternpunkt/jimmybox)
HTTPS doesn't work on Vagrant (Ubuntu 16.04 sternpunkt/jimmybox)
我为我的两个网站做了自签名的 SSL 证书。 w2.local 和 c2.local(按照以下步骤:https://medium.com/@tbusser/creating-a-browser-trusted-self-signed-ssl-certificate-2709ce43fd15)并在 vhosts 中配置它:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName w2.local
ServerAlias www.w2.local
DocumentRoot /var/www/w2
ErrorLog ${APACHE_LOG_DIR}/w2_error.log
CustomLog ${APACHE_LOG_DIR}/w2_access.log combined
<Directory "/var/www/w2">
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName w2.local
ServerAlias www.w2.local
DocumentRoot /var/www/w2
ErrorLog ${APACHE_LOG_DIR}/w2_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/w2_ssl_access.log combined
<Directory "/var/www/w2">
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride All
</Directory>
#adding custom SSL cert
SSLEngine on
SSLCertificateFile /home/vagrant/cert/w2.local.crt
SSLCertificateKeyFile /home/vagrant/cert/w2.local.key
</VirtualHost>
当我尝试打开 http://w2.local 时,连接工作正常,但 https 不工作并显示:Firefox 中的 SSL_ERROR_RX_RECORD_TOO_LONG 和 Chrome 中的 ERR_SSL_PROTOCOL_ERROR。
我尝试启用 ssl 但它已经启用了:
vagrant@vag:/$ sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled
我在没有 errors/notices 引用证书的情况下重新启动了 apache 服务。
vagrant@vag:/$ systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2020-05-18 10:02:33 CEST; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 3087 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 3111 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 56
Memory: 7.8M
CPU: 75ms
CGroup: /system.slice/apache2.service
├─3129 /usr/sbin/apache2 -k start
├─3132 /usr/sbin/fcgi-pm -k start
├─3133 /usr/sbin/apache2 -k start
└─3134 /usr/sbin/apache2 -k start
May 18 10:02:32 vag systemd[1]: Starting LSB: Apache2 web server...
May 18 10:02:32 vag apache2[3111]: * Starting Apache httpd web server apache2
May 18 10:02:32 vag apache2[3111]: AH00112: Warning: DocumentRoot [/var/www/myproject.com] does not exist
May 18 10:02:32 vag apache2[3111]: AH00112: Warning: DocumentRoot [/var/www/params/public/paramsApp/web] does not exist
May 18 10:02:32 vag apache2[3111]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name,
May 18 10:02:33 vag apache2[3111]: *
May 18 10:02:33 vag systemd[1]: Started LSB: Apache2 web server.
我尝试使用 curl 测试连接:
vagrant@vag:/$ hostname -I
10.0.2.15 192.168.33.15
vagrant@vag:/$ curl -V
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
vagrant@vag:/$ curl -v --cacert ./home/vagrant/cert/rootCA.pem --resolve w2.local:443:10.0.2.15 https://w2.local/
* Added w2.local:443:10.0.2.15 to DNS cache
* Hostname w2.local was found in DNS cache
* Trying 10.0.2.15...
* Connected to w2.local (10.0.2.15) port 443 (#0)
* found 1 certificates in ./home/vagrant/cert/rootCA.pem
* found 594 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: An unexpected TLS packet was received.
* Closing connection 0
curl: (35) gnutls_handshake() failed: An unexpected TLS packet was received.
vagrant@vag:/$ curl -v --cacert ./home/vagrant/cert/rootCA.pem --resolve w2.local:443:192.168.33.15 https://w2.local/
* Added w2.local:443:192.168.33.15 to DNS cache
* Hostname w2.local was found in DNS cache
* Trying 192.168.33.15...
* Connected to w2.local (192.168.33.15) port 443 (#0)
* found 1 certificates in ./home/vagrant/cert/rootCA.pem
* found 594 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: An unexpected TLS packet was received.
* Closing connection 0
curl: (35) gnutls_handshake() failed: An unexpected TLS packet was received.
我还应该检查什么来解决这个问题?
我使用了 vagrant 和 sternpunkt/jimmybox。在以前的版本中,ssl 存在问题。版本 3.0.1 有效。
我为我的两个网站做了自签名的 SSL 证书。 w2.local 和 c2.local(按照以下步骤:https://medium.com/@tbusser/creating-a-browser-trusted-self-signed-ssl-certificate-2709ce43fd15)并在 vhosts 中配置它:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName w2.local
ServerAlias www.w2.local
DocumentRoot /var/www/w2
ErrorLog ${APACHE_LOG_DIR}/w2_error.log
CustomLog ${APACHE_LOG_DIR}/w2_access.log combined
<Directory "/var/www/w2">
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName w2.local
ServerAlias www.w2.local
DocumentRoot /var/www/w2
ErrorLog ${APACHE_LOG_DIR}/w2_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/w2_ssl_access.log combined
<Directory "/var/www/w2">
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride All
</Directory>
#adding custom SSL cert
SSLEngine on
SSLCertificateFile /home/vagrant/cert/w2.local.crt
SSLCertificateKeyFile /home/vagrant/cert/w2.local.key
</VirtualHost>
当我尝试打开 http://w2.local 时,连接工作正常,但 https 不工作并显示:Firefox 中的 SSL_ERROR_RX_RECORD_TOO_LONG 和 Chrome 中的 ERR_SSL_PROTOCOL_ERROR。
我尝试启用 ssl 但它已经启用了:
vagrant@vag:/$ sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled
我在没有 errors/notices 引用证书的情况下重新启动了 apache 服务。
vagrant@vag:/$ systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2020-05-18 10:02:33 CEST; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 3087 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 3111 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 56
Memory: 7.8M
CPU: 75ms
CGroup: /system.slice/apache2.service
├─3129 /usr/sbin/apache2 -k start
├─3132 /usr/sbin/fcgi-pm -k start
├─3133 /usr/sbin/apache2 -k start
└─3134 /usr/sbin/apache2 -k start
May 18 10:02:32 vag systemd[1]: Starting LSB: Apache2 web server...
May 18 10:02:32 vag apache2[3111]: * Starting Apache httpd web server apache2
May 18 10:02:32 vag apache2[3111]: AH00112: Warning: DocumentRoot [/var/www/myproject.com] does not exist
May 18 10:02:32 vag apache2[3111]: AH00112: Warning: DocumentRoot [/var/www/params/public/paramsApp/web] does not exist
May 18 10:02:32 vag apache2[3111]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name,
May 18 10:02:33 vag apache2[3111]: *
May 18 10:02:33 vag systemd[1]: Started LSB: Apache2 web server.
我尝试使用 curl 测试连接:
vagrant@vag:/$ hostname -I
10.0.2.15 192.168.33.15
vagrant@vag:/$ curl -V
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
vagrant@vag:/$ curl -v --cacert ./home/vagrant/cert/rootCA.pem --resolve w2.local:443:10.0.2.15 https://w2.local/
* Added w2.local:443:10.0.2.15 to DNS cache
* Hostname w2.local was found in DNS cache
* Trying 10.0.2.15...
* Connected to w2.local (10.0.2.15) port 443 (#0)
* found 1 certificates in ./home/vagrant/cert/rootCA.pem
* found 594 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: An unexpected TLS packet was received.
* Closing connection 0
curl: (35) gnutls_handshake() failed: An unexpected TLS packet was received.
vagrant@vag:/$ curl -v --cacert ./home/vagrant/cert/rootCA.pem --resolve w2.local:443:192.168.33.15 https://w2.local/
* Added w2.local:443:192.168.33.15 to DNS cache
* Hostname w2.local was found in DNS cache
* Trying 192.168.33.15...
* Connected to w2.local (192.168.33.15) port 443 (#0)
* found 1 certificates in ./home/vagrant/cert/rootCA.pem
* found 594 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: An unexpected TLS packet was received.
* Closing connection 0
curl: (35) gnutls_handshake() failed: An unexpected TLS packet was received.
我还应该检查什么来解决这个问题?
我使用了 vagrant 和 sternpunkt/jimmybox。在以前的版本中,ssl 存在问题。版本 3.0.1 有效。