什么是ssl证书?
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。
SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
为什么要使用ssl证书?
现在都提倡全站HTTPS,一方面是为了网站安全,另一方面我是一个爱折腾的人,个人博客使用SSL证书还是会让用户感觉更安全,有利于提升用户体验。
http的风险
你的网站是否出现过这样的情况:
在火狐浏览器上显示:
在谷歌Chrome浏览器上显示:
普通网站倒是没什么要紧,也丝毫不影响正常使用,但是如果你是购物网站或者是与金融相关、与个人信息相关的网站,用户看到这个不安全提示,会不会有所顾虑,用户体验会不会很差呢?
用专业的术语总结一下HTTP的问题:
(1) 窃听风险:第三方可以获知通信内容。
(2) 篡改风险:第三方可以修改通信内容。
(3) 冒充风险:第三方可以冒充他人身份参与通信
HTTP网站的威胁
HTTP 协议通信过程是完全开放的,可以轻易的监听和修改途经的数据报,导致信息的泄露和恶意篡改。
HTTP协议没有用户和网站的身份验证机制,用户在浏览器上敲入的网址, 有可能被DNS劫持, 从而导致用户浏览器被导向了伪造的网站,重要信息如账号密码被骗取。
HTTP通信过程被恶意劫持和篡改是普通用户无法分辨的,所有问题责任归咎于网站或者APP开发者, 对网站和APP的正常经营和品牌造成不利影响。
黑客在HTTP通信过程中,插入恶意代码或病毒,进行双向入侵和攻击。
好了废话不多说了,下面开始讲解如何安装ssl证书:
安装证书申请证书种类
目前在 SSL证书购买时,有三种不同的资料验证方式,从而产生了三类SSL证书:域名型SSL证书(DV SSL)、企业型 SSL 证书(OV SSL)、增强型 SSL 证书(EV SSL) 。
关于这三种证书,想了解更多的,可以自行去百度。
在这里主要是介绍的是域名型ssl证书的安装。关于域名型ssl证书很多大厂都提供了相关服务,比如腾讯、阿里等。
申请
这里的域名证书分为三种类型:泛域名、多域名和单域名,普通用户或小型企业单域名用的多,因为只有单域名有免费版,有效期一年。泛域名和多域名的话价格就非常贵了,记住是非常贵。
这里可选亚信、赛门铁克等都行,都有免费版的。
选择手动认证–确认
解析记录添加完成,大概几分钟过后审核就能通过,下载证书。腾讯的证书文件加会有Apache、Tomcat、nginx、IIS四种服务器类型的证书,证书安装方法可以参考官方文档:https://cloud.tencent.com/document/product/400/4143
以nginx为例,现将证书存到/usr/local/nginx/conf路径下的photo_cert文件夹下,然后修改nginx的配置文件nginx.conf,指定证书位置
若服务器没有开放 443 端口,需要在控制台将 443 端口开放。##### 每次修改完nginx的配置文件,需将其重启方能生效至此,证书的安装已经完成。但是当你在浏览器输入域名的时候,默认打开的还是HTTP,这是因为nginx默认监听80端口,ssl证书监听的是443端口,这时你可以让服务器自动把 HTTP 的请求重定向到 HTTPS。
在服务器这边的话配置的话,可以在页面里加 js 脚本,也可以在后端程序里写重定向,当然也可以在 web 服务器来实现跳转。Nginx 是支持 rewrite 的,所以只需要简单的修改nginx的配置文件即可,在 HTTP 的 server 里增加代码:
rewrite^(.*)https://$host$1permanent;
重启nginx,证书安装完成。
友情提示:证书安装成功之后,当你在网站中引入非HTTPS的链接的时候,浏览器也会提示该网站有部分内容不安全,当然这丝毫不会影响使用,但是对于有强迫症的人来说或许有些难受,在这里你可能会用到oss对象存储,个人推荐七牛云或者阿里云。