windows Server下Let‘s Encrypt的SSL证书续期

刚发现在IIS下 用 win-acme (之前称为Let's Encrypt-Win-Simple) 比 Certbot 更简单。为Windows平台上的服务(主要是IIS)自动化Let's Encrypt证书的获取和续期过程。它是完全开源的。

=============

一、手动续期方法:

暂停IIS服务器 --> 暂时关闭防火墙 --> 执行certbot renew --> 打开防火墙 --> 用OpenSSL将证书转换为PFX格式-->pfx文件导入到IIS --> IIS对应网站中绑定新证书 --> 重新启动IIS -->完成

1、暂停IIS服务器

2、暂时关闭防火墙,命令

netsh advfirewall set allprofiles state off

3、在开始菜单中打开Certbot客户端(或者管理员权限powershell进入Certbot安装目录下的\bin目录)

先查看一下到期信息:

certbot certificates

 

执行

certbot renew

成功!

4、关闭防火墙

netsh advfirewall set allprofiles state on

5、用OpenSSL将最新获得的PEM格式的证书和私钥转换为PFX格式

-->C:\Certbot\archive\yourdomain.com\ 目录下找到最新的privkey.pem 和 fullchain.pem,复制到一个指定目录,然后在OpenSSL安装目录下执行:

C:\Program Files\OpenSSL-Win64\bin>openssl pkcs12 -export -out F:\pem\mysite.pfx -inkey F:\pem\privkey.pem -in F:\pem\fullchain.pem

6、双击pfx文件导入到IIS。(需输入创建pfx文件时设置的密码)

7、IIS对应网站中绑定证书:

8、重新启动IIS

 二、自动续期方法

[未验证,以下是GPT的解答]

在Windows和IIS环境下实现SSL证书的自动续期,尤其是当使用Certbot客户端且需要特定操作(如暂停IIS服务器和关闭防火墙)来成功完成续期时,会稍显复杂。不过,你可以通过创建一个自动化脚本并结合Windows任务计划程序来实现这个目标。下面是一种可能的解决方案:

第一步:创建一个批处理脚本

  1. 创建一个新的批处理文件(例如,CertbotRenew.bat),并将其存放在一个可靠的位置,比如C:\Scripts\

  2. 编辑批处理文件,加入以下命令行:

    @echo off
    REM 停止IIS服务
    iisreset /stop
    
    REM 关闭Windows防火墙
    netsh advfirewall set allprofiles state off
    
    REM 执行Certbot续期
    "C:\Program Files\Certbot\bin\certbot.exe" renew
    
    REM 开启Windows防火墙
    netsh advfirewall set allprofiles state on
    
    REM 重新启动IIS服务
    iisreset /start
    

    确保调整上述脚本中的路径和命令以匹配你的环境和需求。

第二步:使用Windows任务计划程序创建一个任务

  1. 打开任务计划程序:在开始菜单搜索"任务计划程序"并打开它。

  2. 创建新任务:在“操作”菜单中选择“创建任务”。

  3. 配置任务

    • 在“常规”标签下,给任务命名,并选择“不管用户是否登录都要运行”。
    • 在“触发器”标签下,点击“新建”,设置任务的开始时间和重复频率。你可能希望每月运行一次,因为Let's Encrypt的证书有效期为90天,这样可以确保在证书到期之前有足够的时间来解决可能出现的任何问题。
    • 在“操作”标签下,点击“新建”,“操作”选择“启动程序”,在“程序或脚本”框中输入你的批处理文件的路径(例如,C:\Scripts\CertbotRenew.bat)。
  4. 完成和保存任务:配置完毕后,点击“确定”保存新任务。

通过这种方式,你就创建了一个自动化任务,它会根据你设置的时间表自动运行,执行必要的操作来续期你的SSL证书,包括在续期过程中暂停IIS服务和关闭防火墙。

注意事项

  • 确保在设置自动续期前,手动运行一次脚本来验证所有步骤都能正常工作。
  • 考虑到安全性,频繁关闭防火墙并不是一个好的安全实践。如果可能,寻找不需要关闭防火墙的续期方法,例如配置适当的防火墙规则来允许Certbot进行验证,可能会是一个更安全的选择。
  • 如果你的IIS站点配置或DNS记录会经常变动,确保在续期前验证这些配置仍然有效,以免自动续期失败。
  • 考虑在脚本中加入日志记录功能,以便跟踪续期过程中可能出现的任何问题

三、windows + IIS 环节下如何使用Webroot插件完成SSL证书续期

在Windows和IIS环境下使用Certbot的Webroot插件完成SSL证书续期,需要确保Certbot能够在你的Web服务器上放置一个特殊文件,Let's Encrypt的验证服务器会访问这个文件以验证域名的所有权。这个过程不需要停止IIS服务或关闭防火墙,但要求IIS能够提供访问.well-known/acme-challenge目录下文件的HTTP服务。

步骤 1: 确保Webroot路径存在

首先,你需要确定或创建一个目录,作为Webroot插件放置验证文件的地方。这通常是你网站文件存放的根目录。例如,如果你的网站根目录是C:\inetpub\wwwroot,你需要确保这个目录存在并且IIS有权限访问它。

步骤 2: 配置IIS以服务.well-known/acme-challenge

  1. 打开IIS管理器。
  2. 选择你的网站。
  3. 在“操作”面板中,点击“浏览目录”并确保.well-known目录存在于你的Webroot目录下。如果不存在,请创建它。
  4. 同样,确保.well-known目录下有一个名为acme-challenge的子目录。
  5. .well-known/acme-challenge目录配置MIME类型,以确保IIS能够正确地服务在此目录下创建的文件。在IIS管理器中选择网站或服务器级别,然后打开“MIME 类型”。添加一个新的MIME类型:文件扩展名为.*,MIME类型为text/plain

步骤 3: 使用Webroot插件续期证书

在确认了上述配置后,你可以使用以下命令来续期证书,其中<your-webroot-path>需要替换为实际的Webroot路径,例如C:\inetpub\wwwroot

certbot certonly --webroot -w <your-webroot-path> -d example.com -d www.example.com

这个命令会告诉Certbot使用Webroot插件,-w选项指定了Webroot目录的路径,-d选项后面跟着你想要证书覆盖的域名。

步骤 4: 更新IIS以使用新的证书

续期证书后,你可能需要手动更新IIS配置,以使用新的证书。这可以通过IIS管理器完成:

  1. 打开IIS管理器。
  2. 选择你的网站,然后点击“绑定…”。
  3. 找到使用旧证书的HTTPS绑定,点击“编辑”。
  4. 在“SSL 证书”下拉菜单中,选择新续期的证书。
  5. 点击“确定”保存更改。

自动化续期

虽然使用Webroot插件可以手动续期证书,但Certbot在Windows上的自动续期可能不如Linux上那么直接。你可以通过创建一个定时任务来定期运行续期命令,并检查日志文件确认续期成功。

请注意,这个过程中的确切步骤可能根据你的具体环境和配置有所不同。如果遇到问题,检查Certbot日志文件和IIS日志文件可以提供有用的信息。

let's encrypt是一个非盈利性质的机构,致力于提供免费的SSL证书服务,以促进整个互联网的安全性。在官网上,他们提供了一键式免费申请SSL证书的脚本,使得用户可以快速而简便地获取自己网站的SSL证书。 这个一键式免费申请SSL证书脚本的使用非常简单。首先,用户需要在自己的网站服务器上安装并配置好Certbot工具。Certbot是一个由let's encrypt官方开发的自动化工具,用于申请和更新SSL证书。 在安装和配置好Certbot之后,用户只需要在命令行中输入一条简单的指令,就可以申请自己网站的SSL证书了。具体指令如下: $ sudo certbot certonly --standalone -d <your_domain> 其中,“<your_domain>”替换为用户自己的域名。这条指令的作用是告诉Certbot以standalone模式运行,并申请一个新的证书,该证书将与用户输入的域名关联。 Certbot会自动与let's encrypt的服务器进行通信,验证用户所拥有的域名和服务器的控制权。一旦验证通过,Certbot就会生成一个有效期为90天的SSL证书,并将其保存在用户指定的位置。 用户可以根据自己的需要选择将证书文件保存到哪个目录,以及将其用于哪个Web服务器(例如Apache或Nginx)。 值得一提的是,这个一键式免费申请SSL证书脚本还支持自动续订证书的功能。Certbot会在证书即将过期之前自动执行更新过程,以确保用户的网站能够持续使用最新的SSL证书。 总之,let's encrypt官网提供的一键式免费申请SSL证书脚本极大地简化了证书申请和管理的过程,让网站拥有更安全可靠的加密通信。用户只需几个简单的步骤,就能轻松获得免费的SSL证书,提升网站的安全性和可信度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值