You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows机器上生成适用于IIS的SSL证书?

如何在Windows机器上生成适用于IIS的SSL证书?

作为同样折腾过从Nginx转IIS的过来人,我太懂你找不到Certbot IIS指南的困惑了!别担心,咱们有几个靠谱的办法能搞定Let's Encrypt证书在IIS上的部署,下面一步步给你说:

方法一:用Win-acme(推荐,专为Windows/IIS设计)

这是Windows上最流行的ACME协议客户端,对IIS的支持非常友好,不仅能自动生成证书,还能直接绑定到你的IIS站点,甚至帮你设置自动续期,完全不用手动操心后续维护。步骤如下:

  • 先去官方渠道下载最新的Win-acme安装包,解压到你方便的目录
  • 双击解压后的wacs.exe启动命令行交互界面
  • 跟着提示一步步操作:
    • 首先选择「Create new certificate」(创建新证书)选项
    • 接下来它会自动列出当前IIS里的所有站点,直接输入对应站点的编号即可
    • 验证方式选「Http-01」(这是最通用的验证方式,不需要额外配置服务器端口)
    • 后续按照提示确认域名、证书输出路径等信息,完成后它会自动生成证书并安装到IIS中,同时创建Windows定时任务负责证书自动续期
  • 搞定后你可以打开IIS管理器,进入站点的「编辑绑定」页面,就能看到已经自动添加好的HTTPS绑定了

方法二:用Certbot手动模式(如果你坚持用Certbot)

因为Certbot官方没有针对IIS开发专用插件,所以只能通过手动验证的方式生成证书,之后再手动导入到IIS中:

  1. 安装Certbot
    • 打开管理员权限的PowerShell,运行命令:winget install certbot(如果你的系统装了winget包管理器);也可以直接下载Certbot的Windows安装包进行安装
  2. 生成证书
    • 在PowerShell中运行命令:certbot certonly --manual
    • 按照提示输入你的域名(比如example.com
    • 接下来Certbot会给出一段验证信息:要求你在站点根目录下创建.well-known/acme-challenge文件夹,然后在该文件夹内新建一个无后缀的文本文件,文件名是指定的字符串,文件内容也是指定的字符串
    • 完成文件创建后,先在浏览器里访问这个文件的URL,确认能正常打开并显示正确内容,再回到Certbot按回车继续
    • 验证通过后,Certbot会生成证书,默认存放在C:\Certbot\live\你的域名目录下,包含fullchain.pem(证书链)和privkey.pem(私钥)两个文件
  3. 导入到IIS
    • 打开IIS管理器,找到目标站点,右键选择「编辑绑定」
    • 点击「添加」,类型选「HTTPS」,端口填443,然后点击「SSL证书」后的「导入」按钮
    • 如果IIS不支持直接导入PEM格式文件,可以用OpenSSL把证书转换成PFX格式:运行命令openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in fullchain.pem,设置一个导出密码
    • 选择转换好的PFX文件,输入密码后完成导入,最后在绑定中选择这个证书即可
  4. 注意:手动模式不会自动续期证书,你需要自己创建Windows定时任务,定期运行certbot renew命令,之后再重新导入更新后的证书到IIS

方法三:用IIS自带的证书管理器(仅限测试场景)

如果只是内部测试用,IIS自带的工具可以生成自签名证书,但这种证书会被浏览器标记为“不安全”,绝对不适合公网站点使用:

  • 打开IIS管理器,点击左侧的服务器名称,然后双击中间面板的「服务器证书」
  • 在右侧操作栏选择「创建自签名证书」,输入证书名称,选择存储位置后点击确定
  • 回到站点的「编辑绑定」页面,添加HTTPS绑定并选择这个自签名证书即可

备注:内容来源于stack exchange,提问作者variable

火山引擎 最新活动