由于网络的不安全,现在大部分网站已经从HTTP向HTTPS转化了,何为HTTPS?百科上这样介绍"HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。",当你的网站从http转化为https的,你的网站安全性会有所提高,国外的有些第三方登陆需要你的回调网站必须得是https而不能是http,比如国外知名的聊天软件Facebook,里面就有硬性规定。
网址是: https://developers.facebook.com/apps/992881111100509/fb-login/settings/
访问的时候得翻墙哦!
在以往的项目中我曾经部署,今天写一下自己的部署的一些心得:
HTTPS部署千万条,我只选其一,它就是基于cerbot部署。
cerot的官网: https://certbot.eff.org/
cerbot部署的证书是Let‘s encrypt 公司提供的ssl证书,这家的证书唯一的好处就是免费,免费才是王道。
准备的东西:你需要有一个公网地址,并绑定合法域名
介绍完了,现在开始详细步骤:
第一步:安装cerot
cerbot有两种安装模式分别是:(1)、 standalone 方式: certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它,以免冲突。(2)webroot 方式: certbot 会利用既有的 web server,在其 web root目录下创建隐藏文件, Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。
我用的是第二种,也就是webroot方式;
(1)、下载Certbot客户端:
wget https://dl.eff.org/certbot-auto
(2)、下载后,进入下载的目录,添加执行权限
chmod a+x ./certbot-auto
第二步:使用certbot-auto命令,生成证书
./certbot-auto --help all
此命令过后会进入配置步骤,根据提示填写相应的信息,都是英语,看不懂不怕,可以借助翻译软件,比如说我最爱的一款翻译软件,有道词典 根据步骤下来到最后会有以下界面,就说明你安装成功了,注意:在此之前你要配好你的Nginx的80端口哦。
从上图中可以看到,会在/etc/letsencrypt/live下 生成你的域名的文件夹,并且目录下会有此文件:
nginx的https 访问,需要用到 上述两个 pem的证书文件:
第三步:配置nginx支持https访问,测试 https的证书是否可用:
第四步:重载nginx服务;
sudo nginx -s reload
第五步:然后用https访问自己的域名,看是否成功!
注意:
1,检查自己的443端口打开,包括自己云服务器上的防火墙设置443端口是否开启,服务器开启443命令如下:
开启443端口:firewall-cmd --permanent --add-port=443/tcp
查看是否成功:firewall-cmd --permanent --query-port=443/tcp
端口添加成功后,需要reload重新载入:firewall-cmd --reload
2:设置Nginx配置文件,实现http和https同时访问
server {
listen 80;(监听80端口)
listen 443 ssl;(监听443端口)
server_name:(此处填写你的域名)
####端口转发配置
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
ssl_certificate **/**/**chain.pem;(此处修改为你上面安装成功以后的第一个pem文件路径)
ssl_certificate_key **/**/**key.pem;(此处修改为你上面安装成功以后的第二个pem文件路径)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
}
3.重启nginx就ok了