使用Let’s Encrypt实现网站https化

news/2024/5/18 22:39:00/文章来源:https://blog.csdn.net/qq_42349306/article/details/118354176

使用 Let’s Encrypt 证书和搭配 Nginx 实现网站 https 化。

一、SSL证书获取

由于 Let’s Encrypy 申请的 SSL 证书只有三个月的有效期,为了实现自动续期,使用 acme.sh 脚本来获取且自动续期。

使用过程中如有问题参考 acme官方文档 ,文档有中文说明,下面记录我自己的操作。

1. 下载脚本并安装

下载脚本并安装,将邮箱设置成自己的。

wget -O -  https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m  itwxe@qq.com

刷新用户变量,任意目录可以使用 acme.sh。

source /root/.bashrc

这里除了安装了脚本,同时还自动配置了个定时任务,这个定时任务每天会检查你的证书是否需要自动续期,可以使用 crontab -l 查看。

2. 生成证书

为了自动验证并更新证书,使用 DNS 验证需要往文件添加自己的 DNS 授权码,个人认为不太安全,这里使用了 http 方式验证域名所有权,此处结合了 nginx。

nginx 配置你想要申请域名的路径,我这里统一使用 /itwxe/blogSite/public 来验证,如果还有不知道 nginx 怎么安装的可以查看 Linux(CentOS7)下Nginx安装。

修改 nginx.conf 文件,nginx 配置如下,修改后记得验证 nginx -t 是否正确,nginx -s reload 重启 nginx。

server {listen       80;server_name  www.itwxe.com img.itwxe.com;location / {root /itwxe/blogSite/public;}
} 

执行命令申请证书。

# www.itwxe.com SSL申请
acme.sh --issue -d www.itwxe.com -w /itwxe/blogSite/public# img.itwxe.com SSL申请
acme.sh --issue -d img.itwxe.com -w /itwxe/blogSite/public

申请过程非常快的,打印的日志也很简单,成功了就会提示 sucess,有错误也会提示 error。

生成成功之后的文件在 /root/.acme.sh/ 目录下,以域名为文件夹,SSL 证书就在这个目录下。

证书目录

二、Nginx配置https

首先把生成的 SSL 证书复制到自己的目录,我是在 nginx 目录下创建了一个 ssl 目录专门用来存放证书。

cp /root/.acme.sh/www.itwxe.com/{fullchain.cer,www.itwxe.com.key} /usr/local/nginx/ssl/www/cp /root/.acme.sh/img.itwxe.com/{fullchain.cer,img.itwxe.com.key} /usr/local/nginx/ssl/img/

配置 https,这里我把实现 http 重定向 https,同时 itwxe.com 重定向 www.itwxe.com ,贴出自己的部分配置。

    server {listen       80;server_name *.itwxe.com;# 将http请求转变为httpsrewrite ^(.*) https://$host$1 permanent;charset utf-8;}server {listen 443 ssl;server_name itwxe.com;ssl_certificate /usr/local/nginx/ssl/www/fullchain.cer;ssl_certificate_key /usr/local/nginx/ssl/www/www.itwxe.com.key;return 301 https://www.itwxe.com$request_uri;}server {listen 443 ssl;server_name www.itwxe.com;ssl_certificate /usr/local/nginx/ssl/www/fullchain.cer;ssl_certificate_key /usr/local/nginx/ssl/www/www.itwxe.com.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 30m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP;ssl_prefer_server_ciphers on;proxy_connect_timeout 500;proxy_send_timeout 500;proxy_read_timeout 500;client_max_body_size 200m;location / {root /itwxe/blogSite/public;index index.html;}}server {listen 443 ssl;server_name img.itwxe.com;ssl_certificate /usr/local/nginx/ssl/img/fullchain.cer;ssl_certificate_key /usr/local/nginx/ssl/img/img.itwxe.com.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 30m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP;ssl_prefer_server_ciphers on;proxy_connect_timeout 500;proxy_send_timeout 500;proxy_read_timeout 500;client_max_body_size 200m;location /blog {root /itwxe/dockerData/minio/data;autoindex on;}}

验证配置和重启 nginx。

nginx -tnginx -s reload

验证之后可以看到网站小绿标已经加上了,证书查看也可以看到确实是三个月有效期。

ssl

三、自动续期

前面说了正常情况下脚本配置了定时任务每天都会检查证书是否过期,超过两个月就认为证书要过期了,重新续签证书。

但是这种情况下并不会将重新生成的证书并不会复制到 nginx 的 ssl 目录下,并重启nginx,那么就自己写个脚本管理,同时将定时任务修改为每 10 天的凌晨 00:28 分检查 证书是否要过期了。

我在 /itwxe/cron/ssl/ 目录下创建 checkSSL.sh 执行脚本,添加下面内容。

#!/bin/bashecho "================================开始执行时间:$(date +%Y-%m-%d\ %H:%M:%S)"echo "================================检查证书是否过期:"
"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"echo "================================复制www证书到nginx ssl目录"
cp -r /root/.acme.sh/www.itwxe.com/{fullchain.cer,www.itwxe.com.key} /usr/local/nginx/ssl/www/
echo "================================复制img证书到nginx ssl目录"
cp -r /root/.acme.sh/img.itwxe.com/{fullchain.cer,img.itwxe.com.key} /usr/local/nginx/ssl/img/echo "================================重启nginx"
nginx -s reloadecho -e "================================结束执行时间:$(date +%Y-%m-%d\ %H:%M:%S)\n"

赋予可执行权限。

chmod +x checkSSL.sh

crontab -e 删除原来的定时任务,添加定时任务。

28 0 */10 * * /itwxe/cron/ssl/checkSSL.sh >> /itwxe/cron/ssl/checkSSL.log 2>&1

重启定时任务

systemctl restart crond

当然为了检验效果可以,设置最近的时间进行校验是否可以正常执行,例如设置每天18:03执行定时任务。

3 18 * * * /itwxe/cron/ssl/checkSSL.sh >> /itwxe/cron/ssl/checkSSL.log 2>&1

到这里,就实现了网站的 https 化。

都读到这里了,来个 点赞、评论、关注、收藏 吧!

文章作者:IT王小二
首发地址:https://www.itwxe.com/posts/c0cb6cbc/
版权声明:文章内容遵循 署名-非商业性使用-禁止演绎 4.0 国际 进行许可,转载请在文章页面明显位置给出作者与原文链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_794072.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[ay原创作品]用wpf写了个模仿36Kr网站登录背景的效果

这里我借鉴了,上周比较火的一个前端文章,人家用js去写的,地址 自己用wpf也写了一个,但是它的 粒子比较,然后连线算法真的很差,他创建了一个加入鼠标点的集合,2个集合进行比较,并且粒…

wordpress网站使用wechat-social-login插件实现QQ、微信、钉钉、Github、手机号登陆

wordpress版本:wordpress:4.9.8版本 php版本:v7.2.12 dockcer镜像为:wordpress:4.9.8 文章目录图形验证码加载不出来查看phpinfo()的方法docker编译镜像docker编译镜像报错使用集成了freetype的新镜像参考图形验证码加载不出来 最近利用word…

Essential Addons插件漏洞,影响 60 万个 WordPress 网站

文章目录两次失败的修补尝试更新和缓解原文关注Elementor 的 Essential Addons 是一个在超过一百万个站点中使用的流行 WordPress 插件,已被发现在 5.0.4 及更早版本中存在严重的远程代码执行 (RCE) 漏洞。 该漏洞允许未经身份验证的用户执行本地文件包含攻击&…

w3schools网站的HTML教程之HTML介绍

什么是HTML HTML 是一种描述 Web 文档&#xff08;页面&#xff09;的标记语言。 HTML 代表超文本标记语言&#xff08;Hyper Text Markup Language&#xff09;标记语言就是一组标记标签HTML 文档是由 HTML 标签来描述的每个 HTML 标记描述了不同的文档内容HTML 示例代码 <…

30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)

去年八月时要做一个OA系统为了后台界面而烦恼&#xff0c;后来写了一篇博客&#xff08;《后台管理UI的选择》&#xff09;介绍了选择过程与常用后台UI&#xff0c;令我想不到的时竟然有许多开发者与我一样都为这个事情而花费不少时间&#xff0c;最后界面效果还是不佳&#xf…

关于提高网站性能的几点建议

2019独角兽企业重金招聘Python工程师标准>>> 最近在学习《高性能网站建设指南》这本书&#xff0c;本文算是一个学习笔记&#xff0c;将学到的东西进行整理一下&#xff0c;方便后面查看。 性能黄金法则&#xff08;Performance Golden Rule)解释了只有10%~20%的最终…

如何免费把网站从http升级到https

预备知识&#xff1a; 1.什么是https, 相对于https有什么优势/劣势?2.升级https需要准备的文件? 如何升级? 3.ssl证书类型? (EV/OV/通配符证书....)4.如何选择ssl证书? 如何选择供应商? (推荐一家:godaddy比较便宜,Versign/GlobalSign等都比较偏贵)5.如何免费获取信任的…

【运维小分享】记个人博客网站受针对xmlrpc.php的暴力破解***

起因&#xff1a;今天忽然打开个人blog&#xff0c;就发现打开很慢&#xff0c;然后出现了下图的反馈&#xff1a;服务器服务不可用&#xff01;waht&#xff1f;刷新了几次都不行&#xff0c;赶紧登陆服务器后台查看情况。确认***&#xff1a;登陆后台后通过netstat发现连接数…

网站下面的文件找不到_老师傅个人珍藏3年的资源网站,就没有找不到的资源,请珍惜使用...

俗话说的好&#xff1a;靠人不如靠自己&#xff0c;自己动手丰衣足食&#xff0c;还是得自己搜索资源&#xff0c;但是苦于没有给力的资源搜索网站&#xff0c;不用担心啦&#xff01;下面分享几个老师傅个人珍藏3年的资源网站&#xff0c;在网上就没有这几款网站找不到的资源&…

seo管理php源码_linux可视化管理工具-旗鱼云梯

对于经常操作linux的人来说&#xff0c;一款可视化管理工具是一个最好的选择&#xff0c;但是国内外这么多可视化工具&#xff0c;很多运维人员还是觉得外国的月亮圆&#xff0c;还是坚持用国外的插件工具&#xff0c;在这里我要说的是&#xff0c;你看看国内现在的网络环境&am…

ios12完美深色模式插件_让所有网站开启深色模式,试试这个浏览器插件

打从我第一次在用于开发的 IDE(Integrated Development Environment&#xff0c;集成开发环境)中了解并使用一个暗黑的主题之后&#xff0c;我就完完全全变成了 Dark Scheme 的死忠粉。尽管大众对程序员群体形成了「穿格子衫」的刻板印象&#xff1b;但在代码的世界里&#xff…

nextcloud网站不安全_nextcloud安装后常见问题及解决方法

系统&#xff1a;CentOS 7WEB环境&#xff1a;LNMP搭建问题一&#xff1a;PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\”PATH\”) 测试时仅返回空结果.解决方法&#xff1a;在PHP-FPM配置文件&#xff1a;/usr/local/php/etc/php-fpm.conf 最后加上一句&#x…

利用Kali linux中的Dirbuster对网站进行渗透描目录

请自觉遵守网络安全法 1.进入kali linux,的Dirbuster 在URL中输入进行扫描的网站 工作方式选择自动切换 可以将Number of Threads的数值进行调节&#xff0c;在硬件允许的条件下‘ 在File with list of dirs/liles中找到相应的字典进行爆破 导入相应的字典文件 选择开启的方…

PyCharm开发Django网站搜索功能教程

搜索 搜索可以使用最原始的like的方式进行搜索。当然这种搜索方式对于一些小量的数据是非常合适的。但是随着数据量越来越大。这时候我们就需要使用搜索引擎了。搜索引擎会将所有需要搜索的数据使用算法做一个索引&#xff0c;以后搜索的时候就只需要根据这个索引即可找到相应的…

使用WebDeployment Project改善VS2005发布网站问题 (三) 常见问题

一、发布后网站浏览时出现乱码(http://www.cnblogs.com/chy710)如果页面编码是gb2312&#xff0c;可能会有此问题&#xff0c;请使用utf-8编码&#xff0c;vs2005中打开页面切换到HTML视图&#xff0c;选择[文件] / [高级保存选项],选择utf-8,保存&#xff0c;OK。二、发现不明…

Django搭建博客网站(1)

一、前言1.1.环境python版本&#xff1a;3.6Django版本&#xff1a;1.11.61.2.预览效果最终搭建的blog的样子&#xff0c;基本上满足需求了。框架搭好了&#xff0c;至于CSS&#xff0c;可以根据自己喜好随意搭配。二、建立博客应用2.1.建立项目和应用创建工程blogprojectdjang…

什么是最好的网站学习如何使用Linux系统?

2019独角兽企业重金招聘Python工程师标准>>> 其实不是很难使用Linux&#xff0c;由于有关系统的大量技术信息加上现在网上的信息鱼龙混杂&#xff0c;各种信息让我们分不清是真是假&#xff0c;您可能会被愚弄&#xff0c;但毕竟真的不是那么困难。为了给你一个开始…

Apache设置禁止访问网站目录

Apache默认在当前目录下没有index.html入口就会显示网站根目录&#xff0c;让网站目录文件都暴露在外面&#xff0c;是一件非常危险的事&#xff0c;例如&#xff1a;数据库密码泄露&#xff0c;隐藏页面暴露等严重安全问题&#xff01; 例如&#xff0c;访问米扑网站根目录: h…

米扑科技的开源项目:sitemap-php 自动生成网站地图

米扑科技旗下的产品&#xff0c;近期正在做SEO网站优化&#xff0c;其中子需求之一是调研实现了网站地图&#xff08;sitemap.xml&#xff09; 封装简化了许多功能模块&#xff0c;现在分享出来&#xff0c;源代码可在Github上下载&#xff0c;有简单的示例。Github 开源网址&a…

十大免费SSL证书:网站免费添加HTTPS加密

SSL证书&#xff0c;用于加密HTTP协议&#xff0c;也就是HTTPS。随着淘宝、百度等网站纷纷实现全站Https加密访问&#xff0c;搜索引擎对于Https更加友好&#xff0c;加上互联网上越来越多的人重视隐私安全&#xff0c;站长们给网站添加SSL证书似乎成为了一种趋势。 给自己的网…