公司要为一个英国的客户提供由HTTP升级到HTTPS的服务,于是接触到了申请SSL证书这方面的内容。

一、总的来说,申请证书需要两步,一是创建CSR文件,二是在证书提供商购买证书并将CSR文件发给证书提供商。

二、要启用 HTTPS,Web 服务器和 SSL/TLS 证书需要一个相应的私有密钥。需要创建证书签名请求 (CSR)。然后,向证书颁发机构 (CA) 提供 CSR,CA机构负责签署 CSR 以生成证书。

在 Windows Server 上,使用文本编辑器创建一个名为 CertRequest.inf 的证书请求文件。如下所示。文件中指定的各部分、键和值,可参阅 Microsoft 的文档

[Version]
Signature = "$Windows NT$"
[NewRequest]
Subject = "CN=example.com,C=US,ST=Washington,L=Seattle,O=ExampleOrg,OU=WebServer"
HashAlgorithm = SHA256
KeyAlgorithm = RSA
KeyLength =
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
KeyUsage = 0xf0
MachineKeySet = True
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1

三、注意:

1、Signature = "$Windows NT$" 为默认,不用更改。

2、Subject = "C=<Country>,CN=<www.website.com>,O=<Organization>,OU=<Organizational-Unit>, L=<City>,ST=<State>"

生成CSR文件时,一般需要输入以下信息:

  • Organization Name(O):申请单位名称法定名称,可以是中文或英文
  • Organization Unit(OU):申请单位的所在部门,可以是中文或英文
  • Country Code(C):申请单位所属国家,只能是两个字母的国家码,如中国只能是:CN
  • State or Province(S):申请单位所在省名或州名,可以是中文或英文
  • Locality(L):申请单位所在城市名,可以是中文或英文
  • Common Name(CN):申请SSL证书的具体网站域名,支持中文域名(中文.com或中文.cn)

3、国家码可参考:https://country-code.cl/

4、如果不知道所使用的 CSP 的提供程序名称,可以在命令行运行 certutil – csplist。 命令将显示本地系统上可用的所有 Csp 的名称。

Microsoft提供了:

Microsoft Base Cryptographic Provider。一组可导出到其他国家或地区的广泛的基本加密功能。

Microsoft Strong Cryptographic Provider。Microsoft Base Cryptographic Provider 的扩展,在 Windows 2000及更高版本中提供。

Microsoft Enhanced Cryptographic Provider。Microsoft Base Cryptographic Provider 通过更长的密钥和其他算法得出的结果。

Microsoft AES Cryptographic Provider。Microsoft Enhanced Cryptographic Provider 支持 AES加密算法。

Microsoft DSS Cryptographic Provider。通过安全哈希算法(SHA)和数字签名标准(DSS) 算法提供哈希、数据签名和签名验证功能。

Microsoft Base DSS and Diffie-Hellman Cryptographic Provider。DSS Cryptographic Provider 的超集,同时支持使用安全哈希算法 (SHA)和数字签名标准 (DSS)算法进行 Diffie-Hellman密钥交换、哈希、数据签名和签名验证。

Microsoft Enhanced DSS and Diffie-Hellman CryptographicProvider。支持Diffie-Hellman 密钥交换(40位的 DES衍生品)、SHA哈希、DSS数据签名和 DSS签名验证。

Microsoft DSS and Diffie-Hellman/Schannel CryptographicProvider。支持哈希、使用DSS 进行数据签名、生成 Diffie-Hellman (D-H)密钥、交换 D-H密钥以及导出 D-H 密钥。此 CSP 支持 SSL3和 TLS1协议的密钥派生。

Microsoft RSA/Schannel Cryptographic Provider。支持哈希、数据签名和签名验证。算法标识符CALG_SSL3_SHAMD5 用于 SSL 3.0和 TLS 1.0
客户端身份验证。此 CSP支持 SSL2、PCT1、SSL3和TLS1 协议的密钥派生。

Microsoft RSA Signature Cryptographic Provider。提供数据签名和签名验证。

四、使用 Windows certreq 命令,通过CertRequest.inf 文件创建 CSR。

使用INF创建CSR文件-LMLPHP

参考文章:

https://docs.aws.amazon.com/zh_cn/cloudhsm/latest/userguide/ssl-offload-windows-create-csr-and-certificate.html

https://blog.csdn.net/chenlu5201314/article/details/53419082

05-22 18:41