超文本传输安全协议(Hypertext Transfer Protocol Secure
,缩写为HTTPS
)是一种网络安全传输协议http
是HTTP
协议运行在TCP
之上,全部传输的内容都是明文,客户端和服务器端都没法验证对方的身份https
是HTTP
运行在SSL/TLS
之上,SSL/TLS
运行在TCP
之上,全部传输的内容都通过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。HTTPS
经过TLS
层和证书机制提供了内容加密、身份认证和数据完整性三大功能,能够有效防止数据被查看或篡改,以及防止中间人冒充,相比http而言更安全,愈来愈多的网站选择了全站 HTTPS
html
经过腾讯云申请免费的SSL证书
,为期一年,申请地址:https://console.qcloud.com/ssl
我就不废话了,直接上图以下:
注意:域名这里咱们填的是二级域名,由于腾讯云仅支持单个非顶级域名的证书申请,若是咱们有多个子域须要申请屡次DNS
验证能够选择自动和手动,若是自动失败的话能够再手动验证,手动验证操做以下,自动验证经过可无视,查看证书详情,看到以下信息:
这里以DNSPOD解析为例,其余解析服务基本同样,主机记录
就是上图标记①
中内容,记录类型
选择CNAME
,记录值
选择上图标记②
的内容,点击保存,而后等差很少一分钟左右证书就申请下来了:
配置的话请参考证书安装指南,须要上传到服务器mysql
此时咱们访问咱们的网站能够发现加https
和不加https
均可以访问到,那么如何强制把网站重定向到https
页面中去了,也就是接下来要说到的htaccess
文件了,能够用来重定向页面
咱们在服务器根目录下新建一个.htaccess
文件,而后往其中添加如下几行就会自动定向到https
中去linux
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
固然若是你须要你每一个子域都重定向到https
页面中去,那么能够在每一个子域的根目录下添加上面的.htaccess
文件,暂时我选用的就是这个笨办法
此时你能够发现直接重定向到https
页面了,可是因为以前引用的微博图床的图片由于是http
协议,因此控制台会报错,提示Mixed Content
错误信息。若是图片是直接输出到页面中的话,由于微博图床也支持https
引用,因此咱们能够修改http
协议为https
,此时控制台就不会再报错了。若是图片信息是从数据库里获取的话,咱们能够在mysql
执行如下命令批量修改sql
update table set imgSrc=REPLACE(imgSrc,'http:','https:')
可是我建议的是不直接使用https
,而是采用无协议头的用法,也即引用大多数CDN
所使用的方法
好了,到此全站https
的启用就完成了,你会发现访问个人网站时浏览器地址栏都加了一把小锁了数据库
参考资料:
超文本传输安全协议
Redirect HTTP to HTTPS automatically
25个有用.htaccess技巧
21个很是有用的.htaccess提示和技巧浏览器