您的位置:首页 > 理论基础 > 计算机网络

用阿里云的免费SSL 证书让网站从HTTP换成HTTPS

2017-07-05 18:00 801 查看
参考链接:https://ninghao.net/blog/4449

简介:HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能被再途中被截获,破解传递的展示内容,所以使用不加密的HTTP网站是不太安全的。所以Google的Chrome浏览器再2017年1月开始,标记使用不加密的HTTP协议的网站为Not Secure,不安全
现在你要做的就是让网站支持HTTPS,并不难,而且现在可以免费做到。要使用HTTPS,你需要安全机构颁发的安全证书,然后配置服务器,去使用这个证书。下面介绍一下在阿里云申请安全证书,还有配置一般NGINX服务器支持HTTPS的方法
申请证书
1. 登录:阿里云控制台-》左边的 云盾(安全)-》证书服务,购买证书。
2. 购买:证书类型选择 免费型 DV SSL,然后完成购买。3. 不全:在 我的证书 控制台,找到购买的证书,在操作栏里面选择 补全。填写证书相关信息4. 域名验证:可以选择DNS,如果域名用了阿里云的 DNS 服务,在勾选一下,证书绑定的域名在 阿里云的云解析5. 上传:系统生成 CSR ,点一下创建6. 提交审核
如果一切正常,10分钟左右,申请的证书就会审核通过。




申请证书要注意的是验证域名,就是你要验证你想绑定证书的域名是你自己的,如果选择使用DNS 验证,你需要在域名的管理里,添加一条特定的DNS记录,这样就可以证明这个域名是你自己的。使用了阿里云的云解析服务,这个步骤可以自动完成,会自动为你添加一条DNS 验证的记录
输入证书要绑定的域名:


填写个人信息:

在域名的管理里,因为我用了阿里云的 DNS 解析服务,所以会自动添加一个 TXT 记录,这个记录就是验证域名所有权用的:


下载证书
在阿里云的证书管理哪里 ,如果申请的证书审核通过了,你就可以下载了,点击 下载,可以选择不同的类型,可以选择 NGINX ,或者Apache 之类的服务器。根据自己网站的web 服务器类型,下载对应的证书。解压以后,你就会得到两个文件 一个是 *.key,一个是*.pem。



配置 NGINX 的 HTTPS

有了这个证书,就可以去配置 Web 服务器去使用这个证书了,不同的 Web服务器配置方式都不太一样。下面用NGINX 服务器作为延时。我的域名是:www.xujingcong.com ,出现这个文字的地方你可以根据自己的实际情况去替换一下。
下载并上传证书

在nginx的安装目录下创建一个存储证书的目录 cert :



把申请并下载来的证书,上传到上面的目录下面。我的证书位置是:



配置NGINX文件
你的网站可以同时支持HTTP 与 HTTPS, HTTPS 默认的端口是 80,HTTPS 的默认端口是443。也就是如果你的网站要使用HTTPS,你需要配置网站服务器,让它监听443端口,也就是用户使用 HTTPS 发出的请求。
打开nginx的安装目录下的 conf 目录中的 nginx.conf 文件,找到:



将其修改为(以下属性中的sll开头的属性与证书配置有直接关系,其他暗属性请结合自己的实际情况复制或调整):
复制下面代码:
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate /usr/local/nginx/conf/cert/214183774790839.pem;
ssl on;
root html;
index index.html index.htm;
ssl_certificate /usr/local/nginx/conf/cert/214183774790839.pem; #可以使用绝对路径
ssl_certificate_key /usr/local/nginx/conf/cert/214183774790839.key; #可以使用绝对路径
access_log logs/ssl.access.log;
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;
#proxy_pass http://127.0.0.1:8080/ssl; #可以使用反向代替跳转到后端的8080端口
}
}
保存退出。

上面的配置里,ssl_certificate 与 ssl_certificate_key 这两个指令指定使用了两个文件,就是你下载的证书,解压之后看到的那两个文件,一个是 *.pem ,一个是 *.key 。你要把这两个文件上传到服务器上的某个目录下面。
重新加载 NGINX 服务
验证配置
在浏览器上输入带 https 的网站地址 :https://www.xujingcong.xin 如果正确的配置了服务器使用 SSL 证书,会在地址栏上显示一个绿色的锁头图标。



配置成功后,启动nginx出现问题:配置文件nginx.conf中ssl无法识别 ,请确认是否在编译nginx过程中加入--with-http_ssl_module 这个模块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SSL HTTPS