针对网站升级https,整理了下http和https的一些分析,以及配置方法整理html
HTTP协议(超文本传输协议)是互联网上应用最为普遍的一种网络协议,常被用于在web浏览器和网站服务器之间传递信息,http协议传输数据是以明文方式进行传送,若是中途被截获,就能够读取其中的信息。还记得以前公司某一台医疗设备的登陆界面被截获,页面上都是广告的状况。nginx
为了解决HTTP协议的这一缺陷,就延伸出HTTPS协议 (安全套接字层超文本传输协议),HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,为web浏览器和服务器之间的通讯数据进行加密。
HTTPS协议的主要做用分为两种:web
若是一切正常,10 分钟左右,申请的证书就会审核经过。centos
证书申请是须要验证域名的,阿里云ssl证书的认证提供了三种浏览器
证书申请须要填写的信息:安全
在域名的管理里,由于我用了阿里云的 DNS 解析服务,因此会自动添加一条 CNAME 记录,这条记录就是验证域名全部权用的:服务器
在阿里云证书管理目录中,若是申请的证书经过审核后,就能够进行下载。能够选择下载不一样的类型,常见的有nginx,以及apach等服务器。根据本身网站的类型,选择下载对应的证书。上传到服务器目录中,解压后会获取到两个文件,文件后缀分别是 .key,和 .pem。网络
证书上传服务器后,就须要去配置服务器。不一样的服务器配置不同。由于个人项目运行环境是lnmp环境下。个人配置方法就是用的是nginx类型的。个人域名是 www.studytime.xin.session
登陆服务器ssh AliCloud
ssh
建立一个存储证书的目录:sudo mkdir -p /usr/local/nginx/ssl/studytime
把申请并下载下来的证书,上传到上面建立的目录的下面。
scp local_path root@ip:/usr/local/nginx/ssl/studytime 证书上传后的路径: /usr/local/nginx/ssl/studytime/1650160_studytime.xin.key /usr/local/nginx/ssl/studytime/1650160_studytime.xin.pem
能够容许网站同时支持http以及https。http使用的默认断后是80,https使用的默认顿口是443。
针对这个问题须要特殊说明下,服务器必须开启响应的80和443端口给外网。通常服务器的安全组是默认开启的,若没有开启能够自行搜索处理,centos7怎么开启80和443端口等。
下面是一个基本的监听 443 端口,使用了 SSL 证书的 NGINX 配置文件,建立一个配置文件:
touch /usr/local/nginx/conf/vhosts/studytime.conf
把下面的代码粘贴进去:
server { listen 443; server_name www.studytime.xin; ssl on; root /data/wwwroot/blog; index index.html; ssl_certificate /usr/local/nginx/ssl/studytime/1650160_studytime.xin.pem; ssl_certificate_key /usr/local/nginx/ssl/studytime/1650160_studytime.xin.key; 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; }
上面的配置里,ssl_certificate 与 ssl_certificate_key 这两个指令指定使用了两个文件,就是你下载的证书,解压以后看到的那两个文件,一个是 .pem,一个是 .key。你要把这两个文件上传到服务器上的某个目录的下面。
从新加载 NGINX 服务:
sudo nginx -s reload
在浏览器上输入带 https 的网站地址:https://studytime.xin
若是正确的配置了让服务器使用 SSL 证书,会在地址栏上显示一个绿色的小锁头图标。
点开那个小锁头,会显示安全链接,再打开 详细信息。
NGINX 配置使用 301 重定向,会让对 HTTP 网页的请求,重定向到 HTTPS 版本的网页上。
:
server { listen 80; server_name studytime.xin www.studytime.xin; return 301 https://$host$request_uri; }
更多精彩内容,请关注做者博客,https://studytime.xin