ssl证书绑定windows服务器端口及SSL配置命令详解

ssl证书绑定windows服务器端口及SSL配置命令详解

 

第一部分 多层应用服务器中SSL的服务器配置

一、首先,你的 服务器的防火墙 或云服务器的安全配置要哦放通下面你想配置的端口
我配置的端口为:
http:  8085
https: 8086
二、其次:你申请了SSL证书(可到腾讯云或阿里云申请单域名的免费版)
三、在服务器安装SSL证书

四、配置绑定SSL端口映射
1、查看当前SSL端口配置:
netsh
http show sslcert


2、绑定当前SSL到指定端口:
netsh

http add sslcert ipport=0.0.0.0:8086 certhash=7bdb08e169609fcc5b5a7417be4fd72411de59fa appid={D1F0A245-9DB2-4C8E-BD85-39F13BCE3C27} certstorename=MY

netsh>http add sslcert ipport=0.0.0.0:8086 certhash=7bdb08e169609fcc5b5a7417be4f
d72411de59fa appid={D1F0A245-9DB2-4C8E-BD85-39F13BCE3C27}

成功添加 SSL 证书

netsh>http show sslcert


3、结果如下:
netsh
http show sslcert


Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>netsh
netsh>http show sslcert

SSL 证书绑定:
-------------------------

    IP:端口                 : 0.0.0.0:443
    证书哈希                : 7bdb08e169609fcc5b5a7417be4fd72411de59fa
    应用程序 ID             : {4dc3e181-e14b-4a21-b022-59fc669b0914}
    证书存储名称            : MY
    验证客户端证书吊销    : Enabled
    仅使用缓存客户端证书验证吊销    : Disabled
    用法检查    : Enabled
    吊销更新时间: 0
    URL 检索超时            : 0
    Ctl 标识符              : (null)
    Ctl 存储名称            : (null)
    DS 映射器用法    : Disabled
    协商客户端证书    : Disabled

    IP:端口                 : 0.0.0.0:8086
    证书哈希                : 7bdb08e169609fcc5b5a7417be4fd72411de59fa
    应用程序 ID             : {d1f0a245-9db2-4c8e-bd85-39f13bce3c27}
    证书存储名称            : (null)
    验证客户端证书吊销    : Enabled
    仅使用缓存客户端证书验证吊销    : Disabled
    用法检查    : Enabled
    吊销更新时间: 0
    URL 检索超时            : 0
    Ctl 标识符              : (null)
    Ctl 存储名称            : (null)
    DS 映射器用法    : Disabled
    协商客户端证书    : Disabled

    IP:端口                 : 0.0.0.0:8172
    证书哈希                : b33bc6a56279fcfa80178290e592697e8f670f9c
    应用程序 ID             : {00000000-0000-0000-0000-000000000000}
    证书存储名称            : MY
    验证客户端证书吊销    : Enabled
    仅使用缓存客户端证书验证吊销    : Disabled
    用法检查    : Enabled
    吊销更新时间: 0
    URL 检索超时            : 0
    Ctl 标识符              : (null)
    Ctl 存储名称            : (null)
    DS 映射器用法    : Disabled
    协商客户端证书    : Disabled


netsh>

4、删除当前SSL 证书绑定的端口号:
Netsh
http delete sslcert ipport=0.0.0.0:8086

5、案例:
 add sslcert ipport=0.0.0.0:8086 certhash=7bdb08e169609fcc5b5a7417be4fd72411de59fa appid={D1F0A245-9DB2-4C8E-BD85-39F13BCE3C27} certstorename=MY
 add sslcert ipport=1.1.1.1:8086 certhash=7bdb08e169609fcc5b5a7417be4fd72411de59fa appid={D1F0A245-9DB2-4C8E-BD85-39F13BCE3C27} certstorename=MY


netsh http>http show sslcert

6、设置URL保留项:
netsh
netsh>
http add urlacl url=http://www.cpuofbs.com:8085/GYAPI/rest/ user=Everyone
http add urlacl url=https://www.cpuofbs.com:8086/GYAPI/rest/ user=Everyone

http add urlacl url=http://www.cpuofbs.com:8085/GYAPI/ user=Everyone
http add urlacl url=https://www.cpuofbs.com:8086/GYAPI/ user=Everyone

7、测试你配置对了没有:
https://www.cpuofbs.com:8086/GYAPI/rest/
https://www.cpuofbs.com:8086/GYAPI/getservernowtime

第二部分 SSL配置命令详解

Microsoft Windows [版本 10.0.18362.387]
(c) 2019 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>netsh
netsh>http show sslcert

SSL 证书绑定:
-------------------------

netsh>http /?
下列指令有效:

此上下文中的命令:
?              - 显示命令列表。
add            - 在一个表格中添加一个配置项。
delete         - 从一个表格中删除一个配置项。
dump           - 显示一个配置脚本。
flush          - 刷新内部数据。
help           - 显示命令列表。
show           - 显示信息。
update         - 将配置条目更新到表中。

若需要命令的更多帮助信息,请键入命令,接着是空格,
后面跟 ?。

netsh>http
netsh http>add /?

下列指令有效:

命令从 netsh 上下文继承:
add helper     - 安装一个帮助者 DLL。

此上下文中的命令:
add cacheparam - 添加 HTTP 服务缓存参数
add iplisten   - 将 IP 地址添加到 IP 侦听列表。
add setting    - 向服务添加全局设置。
add sslcert    - 添加 SSL 服务器证书绑定。-------------------------------------------
add timeout    - 向服务中添加全局超时。
add urlacl     - 添加 URL 保留项。
netsh http>add ?

用法: add sslcert hostnameport= | ipport= | ccs=
        appid=
        [certhash=]
        [certstorename=]
        [verifyclientcertrevocation=enable|disable]
        [verifyrevocationwithcachedclientcertonly=enable|disable]
        [usagecheck=enable|disable]
        [revocationfreshnesstime=]
        [urlretrievaltimeout=]
        [sslctlidentifier=]
        [sslctlstorename=]
        [dsmapperusage=enable|disable]
        [clientcertnegotiation=enable|disable]
        [reject=enable|disable]
        [disablehttp2=enable|disable]
        [disablequic=enable|disable]
        [disablelegacytls=enable|disable]
        [disabletls12=enable|disable]
        [disabletls13=enable|disable]
        [disableocspstapling=enable|disable]
        [enabletokenbinding=enable|disable]
        [logextendedevents=enable|disable]
        [enablesessionticket=enable|disable]

参数:
        标记: 值
        ipport: 绑定的 IP 地址和端口。
        hostnameport: 绑定的 Unicode 主机名和端口。
        ccs: 中央证书存储绑定。
        certhash: 证书的 SHA 哈希。此哈希长度为 20 个字节并指定为十六进制字符串。
        appid: 用于标识主应用程序的 GUID。
        certstorename: 证书的存储名称。对于基于主机名的配置,此名称是必需的。对于基于 IP 的配置,
                默认值为 MY。证书必须存储在本地计算机上下文中。
        verifyclientcertrevocation: 打开/关闭客户端证书的吊销验证。
        verifyrevocationwithcachedclientcertonly: 打开/关闭仅用于吊销
                检查的缓存客户端证书的用法。
        usagecheck: 打开/关闭用法检查。默认值为 enabled。
        revocationfreshnesstime: 检查更新的证书吊销列表(CRL)的时间间隔。如果此
                值为 0,则仅当前一个 CRL 过期时才更新新的 CRL (以秒为单位)。
        urlretrievaltimeout: 尝试检索远程 URL 的证书吊销列表时超时(以
                毫秒为单位)。
        sslctlidentifier: 列出可以信任的证书颁发者。此列表可以是
                计算机信任的证书颁发者的子集。
        sslctlstorename: 在存储 SslCtlIdentifier 的 LOCAL_MACHINE 下的存储名称。
        dsmapperusage: 打开/关闭 DS 映射器。默认值为 disabled。
        clientcertnegotiation: 打开/关闭证书协商。默认值为 disabled。
        reject: 当启用时,将立即断开任何新的匹配连接。
        disablehttp2: 当设置时,将立即为新的匹配连接禁用 HTTP2。
        disablequic: 当设置时,将立即为新的匹配连接禁用 QUIC。
        disablelegacytls: 当设置时,将禁用传统版本的 TLS。
        disabletls12: 当设置时,将立即为新的匹配连接禁用 TLS1.2。
        disabletls13: 当设置时,将立即为新的匹配连接禁用 TLS1.3。
        disableocspstapling: 当设置时,将立即为新的匹配连接禁用 OCSP 装订。
        enabletokenbinding: 当设置时,将立即为新的连接启用令牌绑定。
        logextendedevents: 当设置时,将日志记录用于调试的其他事件。
        enablesessionticket: 当设置时,将启用 TLS 会话恢复。

备注: 添加 IP 地址
或主机名和端口的 SSL 服务器证书绑定和相应的客户端证书策略。

示例:

 add sslcert ipport=1.1.1.1:443 certhash=0102030405060708090A appid={00112233-4455-6677-8899-AABBCCDDEEFF}
 add sslcert hostnameport=www.contoso.com:443 certhash=0102030405060708090A appid={00112233-4455-6677-8899-AABBCCDDEEFF} certstorename=MY
 add sslcert scopedccs=www.contoso.com:443 appid={00112233-4455-6677-8899-AABBCCDDEEFF}
 add sslcert ccs=443 appid={00112233-4455-6677-8899-AABBCCDDEEFF}


netsh http>

 

第四部分 本博客关联知识

        delphi XE基于SSL的HTTPS服务器应用程序的认证文件:

        (Certificate.cer、CACertificate1.cer、PrivateKey.key及OnGetPassword)的配置:

        https://blog.csdn.net/pulledup/article/details/105408763

喜欢的话,就在下面点个赞、收藏就好了,方便看下次的分享:

 

你可能感兴趣的:(RestFul)