一、首先,你的 服务器的防火墙 或云服务器的安全配置要哦放通下面你想配置的端口
我配置的端口为:
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
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=
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
喜欢的话,就在下面点个赞、收藏就好了,方便看下次的分享: