史上最详细配置HTTPS

HTTP(超文本传输协议),是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

HTTPS(超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。

预览三种网站的效果

  • 普通的http网站

  • https的网站

  • https+ssl证书的网站(也就是本网站)

获得SSL证书

  • 我选择的华为云的ssl证书

  • 证书一般是收费的,当然现在有很多网站推出了白嫖的ssl证书,虽然没有正常的ssl证书那样有很多安全,但是可以证明网站备案等

  • 在华为云头部搜索"免费证书"

  • 这里我们直接购买ssl证书,价格为0,购买之后,我们会收到一个qq邮箱提醒

  • 我们点击下方的链接,用邮箱给我们的账号密码选择登录

  • 如果是第一次访问,需要写一下东西,配置完之后如上图

  • 我们下载之后,按照这个文档进行配置

如果你没有遇到问题,那么你很强,就不需要继续往下看了

开始踩坑

第一个遇到的坑就是 ./Nginx -s reload 重启Nginx的时候,会出现一个ssl模板没有找到的错误

解决方式

# 进入到/usr/local/nginx-1.14.2(注:是nginx的源码包的目录),执行以下命令
./configure --with-http_ssl_module
 
# 注意这里只能用make 而不要用make install,因为执行make install是覆盖安装的意思
make

先备份旧的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak

复制新生成的文件到安装路径:
cp ./objs/nginx /usr/local/nginx/sbin/
./nginx -s reload  #进行重启

继续采坑中配置完之后发现,有了ssl证书,但是没有那个绿色的小锁头,很奇怪了

主要是由于页面使用了非https协议的文件,比如说<img src="http:xxxx" />,就会产生这个原因,那么我们把页面的http全部改写为https就发现我们的网站恢复了

原文地址:https://www.cnblogs.com/sunhang32/p/11946880.html