我试图为外部世界和我的本地networking服务于同一个网站。 如果从我的本地networking访问,我不希望SSL(以避免添加证书)和附件没有用户login,而从外部世界,我希望authentication和SSL。 我正在考虑这样的事情,不幸的是从我的本地networking访问总是把我redirect到SSL服务器。
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name my.server.com; ssl_certificate /etc/letsencrypt/../fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/../privkey.pem; # managed by Certbot include snippets/ssl-settings.conf; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/auth.d/auth.pwd; root /var/www/html; location / { try_files $uri $uri/ =404; } include /etc/nginx/locations-enabled/*.conf; } server { listen 80 http2; listen [::]:80 http2; server_name myhost.local; allow 10.10.1.0/24; deny all; satisfy any; root /var/www/html; location / { try_files $uri $uri/ =404; } include /etc/nginx/locations-enabled/*.conf; }
我错过了什么?
如果您的网站具有SSL,则应将其保留在SSL上以用于本地连接。
如果您要求信任证书,则意味着:
至于2017年,我没有看到有没有一个网站上未encryption的HTTP的好理由。
您应该为生产和开发网站使用SSL。 使用SSL可以让您从HTTP2的速度改进中受益。 现代浏览器在未encryption的连接上不支持HTTP2。
如果您尝试在内部避免使用SSL的唯一原因是要避免使用第二个证书(假设您拥有www.external.com并且不需要www.internal.com证书),则可以操纵主机文件或内部DNS服务器来更改www .external.com到您的服务器的内部IP地址。
更改内部DNS是一个更好的select,因为它不会打破您的用户只能在现场访问它的假设。
我已经在几台机器上成功完成了这个任务,主要是为了共享点。