需求:项目原来时http://开始的访问路径,现有需求改为https开头的访问路径
申请一个自己的域名
好多的云服务提供商都可以提供域名申请和SSL证书申请
我是找了个免费的注册网站(新网 http://www.xinnet.com/)
SSL证书也有免费的
先说注册域名
新网 http://www.xinnet.com/注册的域名,新用户搞活动时可以申请一个免费一年的域名,域名申请需要实名认证,我们测试使用申请一个根域名便宜的域名即可,比如xyz结尾的
域名有了以后还需要在控制台添加域名解析才能用
根据官网的提示提交解析,新增域名解析时新增自己申请的域名和www.域名绑定IP地址即可
申请SSL证书
可以到这个https://letsencrypt.osfipin.com/网站申请SSL证书,有效期为3个月到期重新申请即可;也可以到https://freessl.cn/去申请我用的第一个网站申请的。
申请证书的方式有好多种,有付费的也有免费的,有命令式的也有图形式,下面这个时最简单的图形操作,新手容易理解上手,缺点就是到期需要手动重新申请
申请的时候按照人家官网提示操作即可,过程中需要验证域名的有效性,也是按照提示验证就行,
这里我有个疑问就是人家提供的验证方式有俩种,其中一种是需要在网站绝对路径下新增文件夹并拷贝一个txt验证文件进去,因为我不清楚网站的绝对路径是啥,
就选择了另外一种验证方式,到期再次申请的时候还要验证。
验证俩次,验证通过后就可以申请SSL证书了,并下载证书
证书下载完成后,解压压缩文件,修改证书和密钥的后缀,然后放在ngnix/config/的一个文件夹下面即可,放在其他地方ngnix启动时找不到ssl证书
ngnix配置
默认的一下配置可以管它们,我这里配置了负载均衡的代理和ssl证书
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream test{ ip_hash; server 127.0.0.1:9001; server 127.0.0.1:9002; } server { listen 80; #监听域名 server_name www.test97.xyz; rewrite ^(.*)$ https://$server_name$1 permanent; #这句是代表 把http的域名请求转成https location / { proxy_pass http://test; proxy_set_header Host $host;#将请求头转发给后端服务器 proxy_set_header X-Forward-For $remote_addr;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Server $host; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server server { listen 443 ssl; server_name www.test97.xyz; ssl_certificate cert/fullchain.pem; ssl_certificate_key cert/private.key; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { proxy_pass http://test; } } }
启动ngnix或者重启
start ngnix.exe 或者nginx.exe -s reload
把项目跑起来,在浏览器用https访问一下试试
我的测试项目在自己电脑上运行,所以以上适用于windows使用,linux可以自己研究下,linux申请证书更容易直接使用命令,并且可以设置定时任务自己更新证书
测试时页面引用http的请求可以暂时更改浏览器的安全设置来实现
JavaScript 页面跳转、页面重定向
JavaScript 实现页面跳转重定向可以使用以下两种方法:
window.location.replace("url")
类似 HTTP 重定向
将地址替换成新 url,该方法通过指定 URL 替换当前缓存在历史里(客户端)的项目,因此当使用 replace 方法之后,你不能通过"前进"和"后退"来访问已经被替换的URL,这个特点对于做一些过渡页面非常有用!
window.location.href="url"
类似点击 a 标签的链接。
跳转到指定的 url。