Nginx配置SSL证书(网站由http转成https)
转自:https://www.hjljy.cn/articles/2019/02/28/1551347168588.html
Nginx学习日志(三)配置SSL证书(网站由http转成https)
Nginx学习日志
Nginx学习日志(一)简单入门
Nginx学习日志(二)通过反向代理将不同域名映射到不同的端口
发现现在很多网站都变成了https,并且在浏览器当中如果是http类型的网站,还会提示网站不安全,所以打算将自己的博客换成https类型。
记录一下HTTP升级到HTTPS的过程。
网上看着很简单,但实际上还是遇到了不少的问题,不过还好,最终都一一解决了
什么是SSL证书?
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。
参考资料:
https://yq.aliyun.com/articles/602965
https://www.sohu.com/a/225956682_596521
如何获取免费的SSL证书?
11种免费获取SSL证书的方式: https://www.toolmao.com/get-free-ssl (一篇非常详细的文章)
由于我是使用的阿里云服务器,所以是通过阿里云当中获取的免费SSL证书。
nginx里面如何配置SSL证书?
由于我在阿里云服务器上的网站使用了Nginx,这里主要记录nginx的ssl证书配置过程。
配置过程
第一步: 将阿里云获取到的SSL证书下载下来。一般是两个文件:xxxx.pem 以及 xxxx.key
第二步: 在Nginx的安装目录下创建cert目录,并将下载的文件全部拷贝进去。
第三步: 修改nginx.conf配置信息
将原来的HTTP跳转重定向到https上面
server {
listen 80;
server_name hjljy.cn,www.hjljy.cn;
location / {
return 301 https://www.hjljy.cn$request_uri;
}
}
配置https的相关跳转
server {
listen 443 ssl;
server_name www.hjljy.cn;
ssl on;
ssl_certificate ../cert/1864683_www.hjljy.cn.pem; #注意这里 指定第二步当中拷贝的文件位置
ssl_certificate_key ../cert/1864683_www.hjljy.cn.key;
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 / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
}
}
第四步: 重启nginx 在安装目录bin下面输入:./nginx -s reload 报如下错误 因为安装nginx时未加载ssl模块
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:84
处理方式一:https://www.cnblogs.com/ghjbk/p/6744131.html
处理方式二:直接重新安装nginx 在安装时记得加载ssl模块支持。同时记得备份重要配置文件。
最后重启nginx就可以了。
问题总结
主要遇到了三个问题
第一个就是nginx未加载ssl模块报错的问题
第二个就是证书文件位置的问题
第三个花费时间最长,是属于自己的博客软件的问题。排查了很久才想到这个问题。
我使用的是solo博客软件 在软件初始化的时候,当时配置的网络地址是http类型的,导致在更换到https之后,部分静态资源无法获取到,存在资源降级的问题(就是开始是https的连接类型,然后里面有一些是http类型的连接,这部分的静态资源获取不到)。重新配置重启一下就好了。
参考资料
标题:Nginx学习日志(三)配置SSL证书(网站由http转成https)
作者:hjljy
地址:https://www.hjljy.cn/articles/2019/02/28/1551347168588.html
<span id="articleShare">
<span class="post__share-icon" data-type="wechat">
<svg><use xlink:href="#icon-wechat"></use></svg>
</span>
<span class="post__share-icon" data-type="weibo">
<svg><use xlink:href="#icon-weibo"></use></svg>
</span>
<span class="post__share-icon" data-type="twitter">
<svg><use xlink:href="#icon-twitter"></use></svg>
</span>
<span class="post__share-icon" data-type="qqz">
<svg><use xlink:href="#icon-qqz"></use></svg>
</span>
<span class="article__code" data-title="Nginx学习日志(三)配置SSL证书(网站由http转成https)" data-blogtitle="海加尔金鹰" data-url="https://www.hjljy.cn/articles/2019/02/28/1551347168588.html" data-avatar="https://img.hacpai.com/avatar/1547428844287_1580478720095.png?imageView2/1/w/128/h/128/interlace/0/q/100"></span>
</span>
</div>
</div>
</article>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界