Web开发必知必会,如何使用 Letsencrypt 为网站签发 HTTPS 证书提供安全支持

news/2024/5/20 15:11:58/文章来源:https://blog.csdn.net/mrmengj/article/details/112983348

在这里插入图片描述

在做 Web 开发中,对网站内容的基本安全加密就是使用 HTTPS,并且在一些重视安全性的软件中,HTTPS 必不可少,微信开发中配置的域名强制使用 HTTPS,parse-dashboard 的配置连接必须使用 HTTPS,等等。

现在可以很方便的在各云服务提供商购买证书,唯一的缺点就是需要 付费,那么有没有 免费白嫖 的证书呢?

答案是 有的,今天介绍的就是使用比较知名的自签名证书机构 Letsencrypt 来对自己的网站域名签发证书了支持 HTTPS。

  1. 登录到服务器

    使用 ssh 登录到运行的网站的服务器。

  2. 安装 snapd

    snapd 是目前各个 Linux 发行版中很好用的包管理工具。

    示例中的安装是基于 CentOS 7 系统来安装的,如果你使用的是其他发行版的系统,那么具体的安装请参考 snapd 的官网中的安装文档,传送门。

    • 添加 REPL

      • CentOS 8

        $ sudo dnf install epel-release
        $ sudo dnf upgrade
        
      • CentOS 7

        $ sudo yum install epel-release
        
    • 安装 snapd

      • 配置了 REPL 之后,输入下面命令即可安装 snapd

        $ sudo yum install snapd
        
      • 安装完成后,systemd 服务需要执行 enable

        $ sudo systemctl enable --now snapd.socket
        
      • snapd 的文件目录链接到系统的路径中

        snapd 安装完成之后提供的命令是 snap, 默认安装在 /snap 的目录中

        $ sudo ln -s /var/lib/snapd/snap /snap
        
  3. 查看 snapd 版本

    执行命令安装 snapd 核心库,确保安装的 snapd 版本是最新的。

    sudo snap install core; sudo snap refresh core
    
  4. 移除 certbot-auto 和其他 Certbot 模块包

    使用不同系统自身的包管理工具卸载已经安装的 Certbot 模块,常用的 apt yum dnf 等。

    sudo apt-get remove certbot, sudo dnf remove certbot, or sudo yum remove certbot
    
  5. 安装 Certbot

    Certbot 是生成 HTTPS 证书的主要工具,在之前的版本中 Certbot 使用 Python 来安装,由于 Python 中安装包总是出现版本不一致的问题导致安装不成功,因此官方建议现在使用 snap 来安装 Certbot。

    sudo snap install --classic certbot
    
  6. 将 certbot 链接到系统环境变量中

    sudo ln -s /snap/bin/certbot /usr/bin/certbot
    
  7. 使用 Nginx 生成 HTTPS 证书

    使用 Nginx 生成证书有两种方式:

    • 使用 certbot 生成证书并且使用 certbot 更改 Nginx 的配置文件

      sudo certbot --nginx
      
    • 仅使用 certbot 生成证书

      sudo certbot certonly --nginx
      

    在生成证书的过程中,certbot 会提示你输入邮箱来进行下一步的验证,此时你可以在执行命令的时候添加 --register-unsafely-without-email 跳过邮箱验证步骤:

    sudo certbot --nginx --certonly --register-unsafely-without-email
    

    然后在接下来的步骤中根据要生成证书的域名选择就可以生成自己的 HTTPS 证书啦

  8. 配置自动更新证书

    由于 Letsencrypt 提供的证书的有效期只有 90 天,所以我们需要对我们的证书及时续签。

    通过执行 renew 命令来进行证书续签操作,添加 --dry-run 参数代表模拟续签,查看执行命令的结果输出

    sudo certbot renew --dry-run
    
  9. 使用 crontab 添加定时续签

    Linux 执行定时任务,离不开使用 crontab 命令,在 crontab 配置中添加以下配置

    0 0,12 * * * sudo certbot renew > /var/log/certbot.renew.log
    

    以上脚本代表在每天的 24 点和 12 点定时检查证书是否到期,并执行续签操作。

  10. 查看 HTTPS 服务是否正确开启

    • 在浏览器中打开配置 HTTPS 的域名,查看是否已经切换成了 HTTPS 的标志
    • 在命令行中通过 curl 命令查看 HTTPS 是否开启

    在命令行中输入以下命令查看域名的输出:

     ```bashcurl -vIL https://zi.pongj.com```
    

    输出结果中,可以看到配置的 HTTPS 证书信息,证书的签署日期是 Dec 29 07:06:07 2020 GMT,到期日期是 Mar 29 07:06:07 2021 GMT

     ```bash* About to connect() to zi.pongj.com port 443 (#0)*   Trying 49.235.105.234...* Connected to zi.pongj.com (49.235.105.234) port 443 (#0)* Initializing NSS with certpath: sql:/etc/pki/nssdb*   CAfile: /etc/pki/tls/certs/ca-bundle.crtCApath: none* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384* Server certificate:* 	subject: CN=zi.pongj.com* 	start date: Dec 29 07:06:07 2020 GMT* 	expire date: Mar 29 07:06:07 2021 GMT* 	common name: zi.pongj.com* 	issuer: CN=R3,O=Let's Encrypt,C=US> HEAD / HTTP/1.1> User-Agent: curl/7.29.0> Host: zi.pongj.com> Accept: */*>< HTTP/1.1 200 OKHTTP/1.1 200 OK< Server: nginx/1.18.0Server: nginx/1.18.0< Date: Fri, 22 Jan 2021 05:40:37 GMTDate: Fri, 22 Jan 2021 05:40:37 GMT< Content-Type: text/html; charset=utf-8Content-Type: text/html; charset=utf-8< Content-Length: 219958Content-Length: 219958< Connection: keep-aliveConnection: keep-alive< ETag: "35b36-TbUTbYgQ6yT1OJeOQSyX0F3IN9g"ETag: "35b36-TbUTbYgQ6yT1OJeOQSyX0F3IN9g"< Accept-Ranges: noneAccept-Ranges: none< Vary: Accept-EncodingVary: Accept-Encoding<* Connection #0 to host zi.pongj.com left intact```
    

更多内容

前端开发转全栈,目前的技术栈是 Node.js、Python,日常研究 C 和 Rust,孜孜啃食系统开发和网络设计中~

更多的内容请移步GitHub@ruxf,知乎@孟太白,掘金,或者关注我的公众号@全栈开发师,欢迎来撩~

学到老,写到老,生命不停,编程不止~

加油,打工人~

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

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

相关文章

如何为网站应用接入第三方微信登录

Web 网站的用户登录注册方式有用户名密码登录、验证码登录、OAuth 第三方授权登录等。 常用的第三方登录有 QQ、微信、微博、GitHub、知乎等&#xff0c;一般用户常用微信扫码授权的登录方式&#xff0c;今天介绍一下网站接入微信登录的方法。 应用申请 网站应用中接入微信登…

python爬虫: 爬取boss网站数据 保存到mysql

爬取boss数据并保存到mysql boss的反爬虫控制尤其恶心 cookies大概用3次左右就不能用了 所以爬取不了太多东西 只可用来学习 等学习完逆向爬虫课程 再来挑战挑战 example.py import scrapy from bs4 import BeautifulSoup from boos_scrapy.items import BoosScrapyItem from…

程序员接私活的必备10个网站

大家好&#xff0c;我是小铁。一个实力与逗比的结合体。 今天不讲技术了&#xff0c;我来给大家推荐一些程序员接私活的网站。 开发帮 http://www.52solution.com/kb 外包大师http://www.waibaodashi.com/ 猿急送https://www.yuanjisong.com/ 解放号https://www.jfh.com/ …

今天看了下网站:龙悦居社区网,alexa排名了

2019独角兽企业重金招聘Python工程师标准>>> 建站快1个月了&#xff0c;以前一直在alexa没有排名信息&#xff0c;今天一查&#xff0c;有排名了 转载于:https://my.oschina.net/u/257088/blog/140426

java实现电话的呼叫转移_「呼叫转移设置」呼叫转移流程分析(一) - seo实验室...

呼叫转移设置Android5.0之后的版本&#xff0c;手机的CallSetting设置一般在package/APPs/service/Telephony中下面为呼叫转移流程图&#xff0c;包括应用层与RIL的request1.CallFeartureSettingActivity.java为通话设置入口//在谷歌的源码中没有这个类&#xff0c;可以直接看2…

织梦定时更新栏目html,网站栏目添加与维护

1. 网站栏目添加与维护1.1. 网站栏目管理网站栏目管理是网站的核心部分&#xff0c;是网站内容添加的前提条件。网站栏目也是网站首页的导航条&#xff0c;有着引导网站用户的作用。同时他还是网站地图&#xff0c;在后台生成的百度Sitemap中就有相关的栏目内容。网站栏目在网站…

png 微软ppt 透明度_挖到一个宝藏级的PPT素材网站,哭着五星好评,免费又实用...

今天分享一个超级实用的PPT素材网站&#xff0c;有了它&#xff0c;就再也不用去各大图片素材网站上费尽心机的找背景图了。好了&#xff0c;不兜圈子了&#xff01;直接上网址&#xff1a;Undraw网址&#xff1a;https://undraw.co/illustrations网站上都是一些简约风格的插画…

Google Analytics SEO 实时 网站 访问量 统计

说明&#xff1a; 之前一直在想要怎么才能让aplexos.com域名网站能够统计访问量&#xff0c;网站是使用github.io搭建&#xff0c;不好统计静态网站访问量&#xff0c;想借助工具&#xff0c;但是效果不好&#xff0c;不小心看Google Analytics&#xff0c;然后就注册了…

web漏洞扫描工具_ubuntu linux系统下web网站敏感目录漏洞扫描工具

大家好&#xff0c;今天我们来介绍下&#xff1a;web网站敏感目录漏洞扫描工具一、CansionCansina一款用于发现网站的敏感目录和内容的安全测试工具&#xff0c;通过分析服务器的响应进行探测并使用sqlite保证数据持久性特性多线程HTTP/S 代理支持数据持久性 (sqlite3)多后缀支…

python手机端给电脑端发送数据_手机端网站和pc端网站差别大吗

如今是互联网营销的时代&#xff0c;要做好企业的网络营销&#xff0c;那么企业的网站是一个利器&#xff0c;因为网站不仅可以展示企业的文化、产品&#xff0c;还可以通过在搜索引擎的排名给企业带来流量&#xff0c;让企业网站排名和流量都会增加&#xff0c;现在智能手机越…

多网站情况下配置nginx 301 永久重定向

2019独角兽企业重金招聘Python工程师标准>>> 已经配置成功2个网站在lnmp环境下 修改其中一个网站的301重定向 Step 1&#xff1a; 虚拟主机配置文件 xxx.com.conf 修改成&#xff1a; server_name xxx.com; index index.html index.htm index.php defau…

中关村网站产品参数页的参数纠错的制作

今天突然想在正在做的网站中加上个像中关村一样的参数纠错的功能&#xff0c;效果如下图&#xff1a; 虽然看起来好像蛮简单&#xff0c;但是自己还是想了一下午加上晚上的2个小时&#xff0c;不过等到自己做出来的时候好像也感觉到蛮简单的&#xff0c;其实这种web页面的小特效…

电子商务网站IDC网络拓扑设计

这个拓扑是我为之前公司设计的线上环境的拓扑看着很简单&#xff0c;可是这是我为了让别人看懂而一再精简的&#xff0c;里面把很多实施细节忽略掉了说下要想完成这个拓扑需要的知识储备&#xff1a;至少需要CCNP相当的水平这里面用到了动态路由协议&#xff0c;VLAN划分&#…

查看网站用何种web服务器的命令

查看网站用何种web服务器的命令http://blog.163.com/huv520126/blog/static/2776523920101030104928998/ curl --head xxxxx转载于:https://blog.51cto.com/7499256/1575973

万网免费主机wordpress快速建站教程-wordpress下载及安装

进入wordpress官网&#xff08;http://cn.wordpress.org&#xff09;下载最新的wordpress安装程序&#xff0c;下载完成后解压到任意电脑目录。解压完毕后&#xff0c;使用FTP管理工具上传安装文件至主机htdocs目录。这里使用的是FlashFXP。首先点击连接按钮&#xff0c;填上FT…

访问网站出现图片破裂

访问网站出现图片破裂访问网站的时候出现图片破裂现象本人排查思路如下几点:1、刚开始去查看图片属性登陆服务器查看图片都存在,而且权限都有,但是图片还是不行.2、接着换浏览器测试问题依旧.3、找朋友在别的地方测试都ok.4、最终确定是本地办公网络的原因,主要是网络延迟大,传…

75佳非常漂亮的 CSS 网站布局欣赏(系列五)

互联网高速发展中&#xff0c;每天都有成千上万的新网站诞生。最早的网站是没有样式的&#xff0c;后来引入了 CSS 用来格式化结构化的网页内容&#xff0c;用于精确的控制网页的布局和外观。然而因为浏览器兼容性问题&#xff0c;要使用 CSS 制作出高质量的网站不容易。今天开…

[导入]探讨高访问量网站优化方案(从图片角度)

摘要: 我们知道现在一个好的网站都面临着访问量的问题.高访问量的网站服务器的压力大概来自以下两个方面: 第一:数据库,大量的数据查询操作必定会消耗大部分时间. 第二:WEB服务器本身,大量的图片以及js文件的加载 . 这里我针对第二项说下大多网站在这方面可能进行的优化操作.个…

百度单方面修改网站url导致大量404

2019独角兽企业重金招聘Python工程师标准>>> 百度抓取到的内容&#xff0c;用户搜索并访问后&#xff0c;百度改写了url&#xff08;域名之后的第二个目录&#xff09;&#xff0c;导致出现大量的404&#xff0c;交涉无果&#xff0c;没办法&#xff0c;只能自己修复…

网站安装打包 webconfig修改[三]

在net中&#xff0c;在System.Configuration.ConfigurationManager中&#xff0c;提供了几个静态方法&#xff0c;用来修改配置文件。 如:System.Configuration.Configuration config System.Configuration.ConfigurationManager.OpenMachineConfiguration(); 获得应用程序下的…