ric*_*ard 7 dns ssl https nginx dnsimple
我想重定向以下域中的所有流量:
http://domain.comhttp://www.domain.comhttps://domain.com至
https://www.domain.com我有上述域名的SSL证书.它托管了一个由Passenger提供服务的Rails应用程序.
要完成裸域重定向,我在DNSimple帐户中设置了URL重定向:
URL domain.com 3600 https://www.domain.com
Run Code Online (Sandbox Code Playgroud)
我的服务器块如下(灵感来自Nginx no-www to www和www to no-www等):
server {
listen 80;
listen 443;
server_name domain.com;
ssl on;
ssl_certificate /etc/ssl/domain-ssl.crt;
ssl_certificate_key /etc/ssl/domain.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
server_tokens off;
access_log /dev/null;
error_log /dev/null;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
root /home/deploy/app/current/public;
passenger_enabled on;
passenger_app_env production;
passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https;
ssl on;
ssl_certificate /etc/ssl/domain-ssl.crt;
ssl_certificate_key /etc/ssl/domain.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
passenger_pre_start https://www.domain.com;
Run Code Online (Sandbox Code Playgroud)
什么有效:
https://wwwhttp://www 域被重定向到安全 https://wwwhttps:// www的作品什么不:
https://不起作用,浏览器抛出未找到的服务器基本上我想将所有流量重定向到安全https://www.domain.com.我在这里错过了什么?
我有类似的场景,这就是我解决重定向问题的方法
https://domain.com -----> https://www.domain.com
server {
listen 443;
server_name domain.com;
if ($host = domain.com) {
rewrite ^(.*) https://www.domain.com:443$request_uri? permanent;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
指令如果在位置上下文中使用时有问题,在某些情况下它不会按预期执行,而是完全不同.在某些情况下,甚至是段错误.如果可能的话,尽量避免使用它通常是个好主意.如果在位置上下文中,可以在内部完成的唯一100%安全的事情是:return ...; 重写...最后;
如果您没有 domain.com 的证书,从https://domain.com重定向到https://www.domain.com将不起作用,因为在浏览器获得重定向之前,它必须成功建立 SSL 连接(https 是 SSL 内的 http)并且由于证书不匹配而失败。
| 归档时间: |
|
| 查看次数: |
3875 次 |
| 最近记录: |