前言
不知小伙伴们在浏览网站时是否有注意到,打开某些网站后,浏览器会在前面加上大大的“不安全”标志,像这样(本文用的是chrome浏览器,其他浏览器中显示的样式可能会有些许不同):
不安全的http
这样既不安全,也不美观,强迫症简直无法忍受。既然这样,那我们为何不给自己的网站开启更美观(事实上也更安全)的https标志呢,说多无用,让我们一起来动手吧!
前期准备
-
一个http网站,已经用Nginx做了http负载并且可以正常访问的网站
-
ssl证书,网上有很多地方可以申请免费的ssl证书,如阿里云。申请到证书后我们下载证书的 (.key和.pem)两个文件备用
操作步骤
- 把我们上面准备好的两个证书文件拷贝到服务器的某个目录,可以自己创建一个,这个目录和证书文件是一直不能删掉的
- 修改网站对应的Nginx配置文件
如:/etc/nginx/nginx.conf (自己找到自己网站对应的配置文件,然后按以下说明进行修改即可)
# 添加https server
server {
listen 443 ssl;
# 下面的www.example.com替换成你自己网站的域名(注意这个域名一定要跟ssl证书的域名一致)
server_name www.example.com;
index index.php index.html index.htm default.php default.htm default.html;
#SSL-START 这一段是ssl证书的配置
ssl_certificate /etc/nginx/cert/www.example.com.pem; # 这个目录需要替换成你自己证书的存放目录
ssl_certificate_key /etc/nginx/cert/www.example.com.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;
#SSL-END SSL相关配置
#让http请求重定向到https请求
error_page 497 https://$host$uri?$args;
#下面这些配置跟原本http的server里面的一样就可以了
location / {
}
}
-
保存配置文件,重启Nginx服务,然后你就可以用 https:// 来访问你自己的网站了
-
如果你想别人在用http协议访问时,也默认跳转到https协议,可以在修改下配置文件
#把原来http的server改成下面这样
#下面www.example.com代表你自己网站的域名
server {
listen 80 ;
server_name www.example.com;
rewrite ^(.*)$ https://www.example.com$1 permanent;
}
- 保存配置文件,重启Nginx服务。现在,即使在打开网页时,输入的是http://xxx ,也会自动跳转到https://xxx 了
总结
现在,浏览器不会再给你的网站加上大大的不安全标志了,而换成了一把一看就让人很放心的小锁!
image
网友评论