SSL证书在IIS上部署使用

本文涉及的产品
Elasticsearch Serverless检索通用型,资源抵扣包 100CU*H
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 该文介绍了如何在IIS上部署SSL证书以实现HTTPS访问。首先建议使用nginx,但若需使用IIS,需有SSL证书(fullchain.pem和privkey.pem)并熟悉IIS操作。文中提供了两种证书转换方法:已有openssl,使用命令`openssl pkcs12 -export`生成.pfx文件;无openssl,通过Python脚本(pyOpenSSL v23.2.0)转换。转换后的.pfx文件导入Windows,选择“本地用户”并输入密码。最后在IIS中绑定证书,测试https访问应能正常工作。

背景介绍

我的需求是在IIS上部署SSL证书,然后可以 https://example.com 正常访问

如果您不是迫不得已,建议使用nginx等web服务器已获得顺畅的https服务

nginx SSL 证书配置如下

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate         /etc/nginx/cert/fullchain.pem;
    ssl_certificate_key     /etc/nginx/cert/privkey.key;

环境介绍以及依赖版本介绍

你已经通过其他途径申请到了 example.com 的SSL证书,证书包含两个文件 fullchain.pem pem证书文件 privkey.pem pem私钥文件
windows服务器(我的是windows10),已经安装IIS
这里假设您已经熟练操作IIS

  • 选中IIS中的网站,在右侧Bindings...中添加 https://example.com , 然后在下面选中您导入的证书接口
  • 您导入的证书接口 此时还不可用,本文的目的就是导入证书,然后在IIS中的证书选择中可以选择到导入的证书。
    您已经在您的域名管理的DNS管理中正确添加了DNS解析记录

操作方法

方案1

如果您的电脑已经安装 openssl , 则直接转换证书即可

# 测试您的电脑是否安装openssl
openssl help

Standard commands
asn1parse         ca                ciphers           cms
crl               crl2pkcs7         dgst              dhparam
dsa               dsaparam          ec                ecparam
enc               engine            errstr            gendsa
genpkey           genrsa            help              list
nseq              ocsp              passwd            pkcs12
pkcs7             pkcs8             pkey              pkeyparam
pkeyutl           prime             rand              rehash
req               rsa               rsautl            s_client
s_server          s_time            sess_id           smime
speed             spkac             srp               storeutl
ts                verify            version           x509

# 直接转换证书

openssl pkcs12 -export -out example.com.pfx -inkey privkey.pem -in fullchain.pem

# 需要输入密码 xxxxxx

文件 example.com.pfx 即使转换的 windowws 的证书,可以导入IIS中

方案2

如果您的电脑未安装openssl,则可以使用python代码进行证书转换

代码如下


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2024-03-25 15:26
# @Author  : Jack
# @File    : 02.convert_ssl_pfx

"""
02.convert_ssl_pfx
pip install pyOpenSSL==23.2.0
"""
from OpenSSL import crypto


def main(full_chain_path, key_path, password, pfx_result):
    with open(full_chain_path, 'rb') as f:
        full_chain_data = f.read()
    with open(key_path, 'rb') as f:
        key_data = f.read()

    cert = crypto.load_certificate(crypto.FILETYPE_PEM, full_chain_data)
    key = crypto.load_privatekey(crypto.FILETYPE_PEM, key_data)

    pkcs12 = crypto.PKCS12()
    if cert and key:
        pkcs12.set_certificate(cert)
        pkcs12.set_privatekey(key)
        with open(pfx_result, 'wb') as f:
            f.write(pkcs12.export(passphrase=password))


if __name__ == '__main__':
    main(r'fullchain.pem', r'privkey.pem',
         b'xxxxxx', r'result.pfx')

特别注意事项

pyOpenSSL==23.2.0 , 23.2.0之后的版本已经移除 PKCS12
Removed OpenSSL.crypto.loads_pkcs7 and OpenSSL.crypto.loads_pkcs12 which had been deprecated for 3 years.
参见

导入证书,使IIS可以选择使用

把生成的 example.com.pfxresult.pfx 复制到windows机器上, 双击文件,选择本地用户,下一步,下一步,下一步...看到导入成功提示即可。
本地用户 选择外, 其他选项默认即可,需要密码的话,请输入上面配置的密码xxxxxx

此时在进入IIS中选择证书的话,您就可以选择到您自己的证书了

测试

浏览您的网站 https://example.com 发现可以正常访问。

目录
相关文章
|
2月前
|
算法 安全 应用服务中间件
云上部署WoSign SSL“国密RSA双证书”,助力国密合规建设
我国网络安全法规体系不断完善,形成了以《网络安全法》为核心的立体化法律框架。阿里云数字证书管理服务提供国产品牌SSL证书,支持签发基于国密算法的SSL/TLS证书,助力金融、政务等行业满足“网络与通信安全”合规需求。通过部署WoSign SSL国密RSA双证书方案,实现国际和国密算法自适应兼容,确保信息系统全球通用性与安全性。2025年3月阿里云“智惠采购季”活动期间,用户可享受SSL证书优惠折扣,助力信息安全建设。
140 2
云上部署WoSign SSL“国密RSA双证书”,助力国密合规建设
|
2月前
|
运维 安全 数据建模
阿里云数字证书管理服务免费版和收费版SSL证书区别、收费标准、申请及部署教程参考
阿里云数字证书管理服务提供多种SSL证书类型和品牌,适用于不同规模的网站,包括但不限于电商、小型企业、大型企业或个人等。阿里云SSL证书有收费版的也有免费版的,有的新手用户由于是初次在阿里云申请SSL证书,可能不是很清楚免费版证书的申请和部署流程,本文为以图文形式为大家展示阿里云免费版SSL证书最新的申请及部署教程,以供参考。
|
3月前
|
云安全 运维 安全
阿里云免费版SSL证书申请及部署图文教程指导
SSL证书是个人和企业搭建网站不可或缺的云安全产品,SSL证书能够为网站和移动应用(APP)及小程序提供数据HTTPS加密协议访问,保障数据的安全。阿里云SSL证书有收费版的也有免费版的,有的新手用户由于是初次在阿里云申请SSL证书,可能不是很清楚免费版证书的申请和部署流程,本文为以图文形式为大家展示阿里云免费版SSL证书最新的申请及部署教程,以供参考。
|
6月前
|
缓存 安全 算法
SSL和TLS部署实践
在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是拥有一个有效和强大的证书,它会授予私钥来代表一个特定的主机名。
160 2
|
7月前
|
网络安全 Docker CDN
使用Certimate自动申请与部署SSL证书
Certimate 是一个开源的 SSL 证书管理工具,可帮助自动申请、部署 SSL 证书并自动续期。
674 0
使用Certimate自动申请与部署SSL证书
|
6月前
|
存储 安全 算法
SSL和TLS部署实践
【10月更文挑战第28天】在TLS中,服务器的加密身份和强大私钥是安全基础,2048位RSA密钥足以满足大多数需求。保护私钥需在可信环境生成、加密存储、使用HSM、及时撤销旧证书、每年更新证书。确保证书覆盖所有域名,选择可靠CA,使用SHA256签名算法,配置完整证书链,禁用不安全加密套件,启用前向保密,使用会话重用机制,启用OCSP Stapling,加密整个网站,删除混合内容,安全设置Cookie,配置HSTS和CSP。
542 1
|
7月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
365 1
|
7月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
273 0
|
8月前
|
安全 应用服务中间件 网络安全
部署SSL证书
部署SSL证书
436 5
|
9月前
|
C++
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
128 2