欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Certimate自动化SSL证书部署至IIS服务器

Certimate自动化SSL证书部署至IIS服务器

2024/12/31 1:30:42 来源:https://blog.csdn.net/stars_moon1024/article/details/144378137  浏览:    关键词:Certimate自动化SSL证书部署至IIS服务器

前言:笔者上一篇内容已经部署好了Certimate开源系统,于是开始搭建部署至Linux和Windows服务器,Linux服务器十分的顺利,申请证书-部署证书很快的完成了,但是部署至Windows Server的IIS服务时,遇到一些阻碍,后面也解决了,谨以此片记录部署过程,一起共勉。

关于Certimate搭建就不在赘述了,请看我另一篇文章:公网可信CA机构颁发SSL证书自动部署-CSDN博客

由于自动部署SSL证书至Linux系统服务比较顺利,就不在描述如何部署;部署至IIS服务有几个要点,仅在这里记录下。 

一、申请配置

这里以阿里云为例,填写好基本信息后跳转第二步

二、部署配置至Windows IIS服务器

1、选中部署方式-SSH部署,新增授权配置

 

填写Windows服务器远程登录信息,SSH端口默认22。(下面会讲到如何打开Windows ssh服务)

2、安装Windows Server OpenSSH服务

安装ssh服务有多个方式,可以参考下列网站:

安装OpenSSH Server​

  • 下载安装包安装: Releases · PowerShell/Win32-OpenSSH · GitHub OpenSSH-Win64-vxx.xx.x.msi

  • 前往Microsoft官方文档查看如何开启openSSH,以及其他设置
    适用于 Windows 的 OpenSSH 入门 | Microsoft Learn

我使用第二种方法安装openssh,打开设置-应用-管理可选功能 

 添加功能

找到OenSSH服务器,点击安装即可 

安装完成后,找到服务-启动-设置自动-确定

 检查防火墙入站策略,是否自动开放22端口

本地电脑测试22端口是否启用成功,telnet 192.168.1.10 22,如果有反应,那么就说明已经安装成功

3、配置默认shell命令窗口为powershell

如果没有切换为powershell,那么自动部署SSL远程命令将不可用,会报错。

# powershell中执行如下命令切换
# 设置默认shell为powershell 【推荐】
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

# 恢复默认shell为cmd 【不推荐】
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\cmd.exe" -PropertyType String -Force

4、部署配置-添加命令行配置

证书格式-PFX,证书保存路径填IIS服务器上的路径,可以自己新建一个文件夹,并写上pfx文件全称,导出密码这里自行填写,命令内容如下,使用的原理是powershell命令,导入证书至IIS服务中并启用。

 

 这里是预设脚本,可以在系统中找到,把前6个参数填写完成就行了。

# 请将以下变量替换为实际值
$pfxPath = "<your-pfx-path>" # PFX 文件路径
$pfxPassword = "<your-pfx-password>" # PFX 密码
$siteName = "<your-site-name>" # IIS 网站名称
$domain = "<your-domain-name>" # 域名
$ipaddr = "<your-binding-ip>"  # 绑定 IP,“*”表示所有 IP 绑定
$port = "<your-binding-port>"  # 绑定端口# 导入证书到本地计算机的个人存储区
$cert = Import-PfxCertificate -FilePath "$pfxPath" -CertStoreLocation Cert:\LocalMachine\My -Password (ConvertTo-SecureString -String "$pfxPassword" -AsPlainText -Force) -Exportable
# 获取 Thumbprint
$thumbprint = $cert.Thumbprint
# 导入 WebAdministration 模块
Import-Module WebAdministration
# 检查是否已存在 HTTPS 绑定
$existingBinding = Get-WebBinding -Name "$siteName" -Protocol "https" -Port $port -HostHeader "$domain" -ErrorAction SilentlyContinue
if (!$existingBinding) {# 添加新的 HTTPS 绑定New-WebBinding -Name "$siteName" -Protocol "https" -Port $port -IPAddress "$ipaddr" -HostHeader "$domain"
}
# 获取绑定对象
$binding = Get-WebBinding -Name "$siteName" -Protocol "https" -Port $port -IPAddress "$ipaddr" -HostHeader "$domain"
# 绑定 SSL 证书
$binding.AddSslCertificate($thumbprint, "My")
# 删除目录下的证书文件
Remove-Item -Path "$pfxPath" -Force

siteName网站名称,在IIS服务器中网站找到

ipaddr填写服务器IP,port端口默认填写443 

4、部署测试

部署测试通过,阶段全为绿色,也可以查看日志检查

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com