设置HTTP请求⾃动跳转HTTPS
第⼀种⽅式,分两种情况:
第⼀种情况:修改Nginx安装⽬录/f⽂件
server {
listen 80;
server_name localhost;  #将localhost修改为您证书绑定的域名,例如:ample。
rewrite ^(.*)$ $host$1 permanent;  #将所有http请求通过rewrite重定向到https。
location / {
index index.html index.htm;
}
}
# 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据⾃⼰的需要进⾏配置。
server {
listen 443 ssl;  #SSL协议访问端⼝号为443。此处如未添加ssl,可能会造成Nginx⽆法启动。
server_name localhost;  #将localhost修改为您证书绑定的域名,例如:ample。
root html;
index index.html index.htm;
ssl_certificate cert/domain name.pem;  #将domain name.pem替换成您证书的⽂件名。
ssl_certificate_key cert/domain name.key;  #将domain name.key替换成您证书的密钥⽂件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使⽤此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #使⽤该协议进⾏配置。
ssl_prefer_server_ciphers on;
location / {
root html;  #站点⽬录。
index index.html index.htm;
}
}
第⼆种情况:虚拟主机配置SSL证书,虚拟主机配置⽂件f或*.conf
server {
listen 80;
server_name localhost ;
location / {
index index.html index.htm;
}
}
server {
listen 443 ssl;
server_name localhost;
root html;
index index.html index.htm;
ssl_certificate cert/domain name.pem;  #将domain name.pem替换成您证书的⽂件名。
nginx ssl证书配置ssl_certificate_key cert/domain name.key;  #将domain name.key替换成您证书的密钥⽂件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}
在Web⽬录下打开.htaccess⽂件(如没有,需新建该⽂件),添加以下rewrite语句,实现HTTP访问⾃动跳转到HTTPS页⾯。RewriteEngine On
RewriteCond %{HTTP:From-Https} !^on$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?yourdomain$ [NC]                # 将yourdomain修改
为您证书绑定的域名,例如:example。RewriteRule ^(.*)$ urdomain/$1 [R=301,L]          # 将yourdomain修改为您证书绑定的域名,例如:example。
第⼆种⽅式
server {
listen 80;
server_name ;  # ⾃⾏修改成你的域名
return 301 $server_name$request_uri;
}
server {
listen 443 ssl;
server_name ;  # ⾃⾏修改成你的域名
ssl_certificate  /etc/nginx/sslkey/_;  # ⾃⾏设置证书
ssl_certificate_key  /etc/nginx/sslkey/key;  # ⾃⾏设置证书
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  # ⾃⾏替换成你证书⽀持的加密套件    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  # ⽀持的协议
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。