设置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小时内删除。
发表评论