SSL证书在IIS上部署使用

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 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 发现可以正常访问。

目录
相关文章
|
9天前
|
人工智能 网络安全 开发工具
视觉智能开放平台操作报错合集之服务部署在pdd的服务器,调用报错:The SSL connection could not be established,该如何解决
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
4天前
|
应用服务中间件 网络安全 nginx
|
2天前
|
前端开发 JavaScript 应用服务中间件
windows server + iis 部署若伊前端vue项目
5,配置url重写规则(重写后端请求) 注:如果没有Application Request Routing Cachefourcloudbdueclaim和URL重写,则是第二部的那两个插件没装上 打开iis,点击计算机->点击Application Request Routing Cache -> 打开功能
13 0
|
2月前
|
网络协议 应用服务中间件 网络安全
申请并部署免费的 SSL/TLS 证书
本文介绍了如何免费获取和部署 SSL/TLS 证书,主要针对囊中羞涩的用户。方法包括:云服务平台的限量提供、使用 Cloudflare 等网络服务商以及直接向免费证书颁发机构(如 Let’s Encrypt 和 ZeroSSL)申请。文章重点讲述了通过自动化脚本 acme.sh 与 Let’s Encrypt 配合申请和部署证书的步骤,包括设置默认 CA、安装 acme.sh、使用 http 模式验证和部署到 nginx 服务器。此外,还提到了配置 nginx.conf 文件以启用 SSL。
|
2月前
|
网络协议 Serverless 网络安全
阿里云函数计算自定义域名的SSL证书免费全自动申请及部署
阿里云函数计算简化了开发部署,让用户专注业务逻辑,降低了运维复杂性。然而,SSL证书支持需额外付费:免费证书有效期缩短至3个月,1年证书及自动化部署均收费。为节省成本,小微企业和个人开发者可以采用一套全自动、全免费的SSL证书申请、续签和部署方案。该方案包括自动向Let's Encrypt申请证书、使用阿里云OpenAPI更新证书以及在证书到期前提前申请。通过Win-Acme(Windows)实现,详细步骤包括设置win-acme、自动DNS验证和更新函数计算证书。
276 5
|
2月前
|
Kubernetes 网络安全 Windows
要在云效部署到阿里云服务器上的 Windows Server 上的 IIS
【2月更文挑战第18天】要在云效部署到阿里云服务器上的 Windows Server 上的 IIS
314 4
|
2月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
199 0
|
2月前
|
JavaScript Windows
VUE部署到IIS中报404错误解决方案-配置URL重写
VUE部署到IIS中报404错误解决方案-配置URL重写
121 0
|
2月前
|
前端开发 JavaScript BI
云LIS云实验室信息管理系统源码,支持IIS独立部署,Docker部署
云LIS云实验室信息管理系统源码,支持IIS独立部署,Docker部署
77 0
|
5天前
|
运维 安全 数据建模
阿里云免费SSL证书与付费SSL证书区别及免费SSL证书申请教程参考
免费SSL证书是阿里云为个人网站、开发测试或企业网站建设之初提供的SSL证书,以便满足其对HTTPS数据加密传输的基本要求,从而提高数据传输的安全性。本文为大家详细介绍阿里云免费SSL证书与付费SSL证书区别以及免费SSL证书申请教程。
阿里云免费SSL证书与付费SSL证书区别及免费SSL证书申请教程参考