证书签名请求 (CSR)在网络安全和加密中至关重要。它们是从证书颁发机构 (CA)获取安全套接字层 (SSL) 或传输层安全性 (TLS)证书的过程中不可或缺的一部分。本博客将指导您了解和生成 CSR,强调其在维护网络安全方面的重要性。
当向证书颁发机构请求 SSL 证书时,会发送称为证书签名请求的加密文本块。它通常在将安装证书的服务器上生成。它包含证书中的信息,例如组织名称、通用名称(域名)、地点和国家。此外,它还包括将用于签署证书的公钥。
CSR 充当请求SSL 证书的实体和颁发该证书的 CA 之间的管道。通过生成 CSR,您将创建两个基本项目。第一个是公钥,它包含在 CSR 中。第二个是私钥,与 CSR 同时生成并保留在您的服务器上。私钥必须保密,因为一旦 SSL 证书运行,它允许服务器对信息进行身份验证和解码。
Luna Cloud HSM 是Thales(泰雷兹)提供的硬件安全模块 (HSM) 。“Cloud HSM”部分表示它是基于云的产品。您可以通过 Internet 将其作为服务进行访问,而无需在数据中心实际安装和管理 HSM。Luna Cloud HSM 是 Thales 提供的 CipherTrust Cloud Key Manager 服务的一部分。
HSM 是一种专用硬件设备,具有专门的加密处理器,旨在管理数字密钥和执行加密操作。它们提供了一个安全的环境,您可以在其中生成、管理和使用加密密钥,使它们与其他系统部分隔离以增强安全性。HSM 通常用于保护组织最敏感的数字资产。
Luna Cloud HSM 将云的优势带入 HSM 世界 – 可扩展性、可访问性和更低的前期成本。您可以获得传统 HSM 的安全性以及云服务的附加优势。
Luna Cloud HSM的主要特点是:
强大的安全性
Luna Cloud HSM 利用泰雷兹强大的加密和密钥管理功能,提供最高的云数据保护级别之一。HSM 具有防篡改功能,可为加密操作提供安全的环境。
可扩展性
随着您的加密需求的增长,Luna Cloud HSM 可以轻松地随之扩展。您不必担心购买和安装额外的 HSM 硬件。
高可用性
Luna Cloud HSM 提供高可用性和自动故障转移功能,确保业务连续性。您可以跨多个区域部署 HSM 以缓解本地中断。
合规性遵守
Luna Cloud HSM 可帮助您满足与加密操作和密钥管理相关的监管标准,包括 PCI-DSS、GDPR和HIPAA。该服务具有全面的审计和日志记录功能。
互操作性
Luna Cloud HSM 支持广泛的加密 API、库和集成,例如 PKCS#11、Java (JCE)、Microsoft CryptoAPI 和 Microsoft CNG,使其与广泛的应用程序和服务兼容。
生成 CSR 可能会有所不同,具体取决于您使用的软件,但核心步骤保持不变。以下是该过程的概要:
准备
在生成 CSR 之前,您必须掌握所有相关详细信息。这包括您的域名、组织名称、地点(城市)、州或省名称以及国家/地区代码。
生成密钥对
生成 CSR 的第一步是创建公钥-私钥对。请记住,您的私钥应安全地保存在它生成的服务器或硬件模块中。
生成 CSR
使用与您的服务器软件相匹配的 CSR 生成工具。该工具将要求您提供步骤 1 中准备的详细信息以及步骤 2 中生成的私钥。然后,该工具会生成扩展名为 .csr 或 .req 的编码文件。
在 CSR 生成过程中,系统将提示您输入详细信息(通用名、组织、地点等)。
我们将在Thales DPoD 上生成 CSR。因此,首先,我们需要进行应用程序所有者配置,这意味着添加和配置客户端。
客户端安装使用 .zip (Windows) 或 .tar (Linux) 来提供配置系统与Luna Cloud HSM 服务的连接所需的客户端材料。客户端 .zip 包括预配置的 crypto-template.ini 文件和包含库和二进制文件的客户端存档文件。
访问服务页面并单击要生成客户端的服务或分区名称。
单击新建服务客户端– 将显示创建服务客户端窗口。
在“创建服务客户端”窗口中,输入客户端名称(例如,Pega-Macro)并选择“创建服务客户端”。
设置环境变量。打开管理员命令提示符 – 右键单击命令提示符并选择以管理员身份运行。在管理员命令提示符中执行以下命令:
系统需要访问 SafeNet 密钥存储提供商 (KSP)。将 SafeNetKSP.dll 文件从下载的 Luna Cloud HSM 服务客户端复制到C:\\Windows\System32。
注意:如果未能复制 SafeNetKSP.dll 文件,将导致在集成期间无法访问 SafeNet 密钥存储提供程序。例如,如果配置 Microsoft Active Directory 证书服务,则在设置 CA 加密时,SafeNet 密钥存储提供程序将不可用。
单击“浏览”。从 Luna Cloud HSM 服务客户端中选择cryptoki.dll文件。
单击注册。
注册成功,即成功!显示消息。单击“确定”。
为管理员用户注册HSM。为此,打开“注册用户”下拉菜单并选择“管理员”;打开域下拉菜单并选择您的域。打开可用插槽下拉菜单,选择服务标签,输入插槽密码,然后单击注册插槽。
注册成功,即成功!显示消息。单击“确定”。
为系统用户注册HSM。打开“注册用户”下拉菜单,然后选择“系统”、“域”下拉菜单和“NT AUTHORITY”。打开可用插槽下拉菜单,选择服务标签,输入插槽密码,然后单击注册插槽。
注册成功,即成功!显示消息。单击“确定”。
创建名为request.inf的文件并填写以下详细信息,以生成连接到RSA密钥的 SSL 证书的请求。内容是:
[Version] Signature = "$Windows NT$" [NewRequest] Subject = "C=US, S=Dallas, L=Texas, O=Encryption Consulting LLC, OU=Dev, e=subhayu@encryptionconsulting.com, CN=ECIssued " HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength =2048 ProviderName = "Safenet Key Storage Provider" KeyUsage = 0xf0 MachineKeySet =True [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.
注意:主体的通用名 (CN) 是为此请求任意选择的,并且可能会更改。
参数为:
签名
“$Windows NT$”指定 INF 文件适用于 Windows NT 和更高版本的 Windows。
主题
哈希算法
SHA256 将哈希算法设置为 SHA256,一个标准且安全的选择。
密钥算法
RSA将密钥算法设置为广泛使用的公钥算法RSA。
密钥长度
2048 将密钥长度设置为 2048 位。这是 RSA 密钥的当前行业标准。
提供商名称
“SafeNet Key Storage Provider”表示要使用的加密服务提供商(CSP)。CSP是一个实现加密功能的软件库。在这种情况下,使用 SafeNet 密钥存储提供程序。
密钥使用
0xf0 指定证书中密钥的用途。十六进制值 0xf0 对应于二进制值 11110000,它代表数字签名 (0x80)、密钥加密 (0x20)、数据加密 (0x10) 和密钥协议 (0x08) 密钥用法。
机器密钥组
True 表示私钥存储在本地计算机的证书存储中,而不是当前用户的证书存储中。
增强型密钥使用扩展
OID=1.3.6.1.5.5.7.3.1 是指定证书用途的对象标识符 (OID)。OID 1.3.6.1.5.5.7.3.1 代表“服务器身份验证”,这意味着该证书用于在 SSL/TLS 通信中对服务器进行身份验证。
现在,使用以下命令生成证书请求:
certreq -new request.inf request.req
此命令将根据“request.inf”文件中的配置创建一个名为“request.req”的新证书签名请求(CSR)文件。您可以将此 CSR 文件发送给您的 SSL 证书的证书颁发机构 (CA)。
签署 CSR 有两种不同的方式:
将 CSR 文件传输到颁发 CA 并执行命令 –
certreq -submit -attrib "CertificateTemplate:<Template Name>" "C:\MacroSign.csr"
此处,模板名称 =“EncryptionConsuCodeSigning”
从证书颁发机构列表中选择证书颁发机构后,使用适当的名称保存证书。(例如,= ECMacro,扩展名应为 .crt 或 .cer)
成功执行后,您将在证书颁发机构的已颁发证书中找到该证书
检查新生成的证书的增强密钥使用属性中是否包含“代码签名” 。
证书颁发机构中的可用模板
现在,选择模板后执行 Web 注册 - “代码签名”。
选择请求证书后,将出现此屏幕。选择“高级证书请求”。
将 CSR 的内容粘贴到“保存的请求”中,然后在“证书”模板中选择“代码签名”。之后,点击提交。
这将提示两个选项 -下载证书和下载证书链。选择后一种并将链下载到您的本地系统。
这就是证书链的样子。
接受并安装在 Windows 环境中可用的证书。
接下来,使用命令 将证书添加到证书 - 本地计算机的“个人”证书中 -
certutil -store MY “<thumbprint of the certificate>”
要检查颁发 CA 中存在的 CA 模板列表 –
certutil -CATemplates
如果私钥未附加到证书,请尝试此“repairstore”命令
Windows 中的CSP/KSP 注册失败。
如果 Windows 更新缺失,CSP/KSP 注册可能会失败,因为它包括验证 DLL 是否由泰雷兹证书签名的步骤,该证书链接回 DigiCert 信任根 G4(符合行业安全标准)。
仅当您的 Windows 操作系统具有所需的证书时,此步骤才能成功。如果您的 Windows 操作系统已更新,您应该已经拥有该证书。
如果您的 Luna HSM 客户端主机已连接到互联网,请使用以下命令手动更新证书:
certutil -urlcache -f http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt certutil -addstore -f root DigiCertTrustedRootG4.crt
手动更新未连接的主机
使用以下命令将证书添加到证书存储区:
certutil -addstore -f root <downloaded cert path>
如果证书请求中的主题未显示在证书上,请尝试以下步骤。
要求使用此模板的证书应包括您配置的“密钥用法”和“增强型密钥用法”字段。
配置模板:在新模板的属性对话框中,您可以配置各种设置。要设置“密钥用法”和“增强型密钥用法”字段:
密钥用法:转到“扩展”选项卡,在列表中选择“密钥用法”,然后单击“编辑”。在这里您可以选择要包含的密钥用法,例如“数字签名”、“密钥加密”、 ETC。
增强的密钥用法:仍然在“扩展”选项卡上,选择“应用程序策略”并单击“编辑”。在这里您可以添加要包含的增强的密钥用法,例如“代码签名”、“服务器身份验证”等。
一旦生成,CSR 可用于从证书颁发机构寻求 SSL 证书。CSR的数据将被CA用来构建证书,确保您网站的安全和信息传输的安全。
尽管程序和协议可能看起来很困难,但使用 SSL 证书来保护您的网站对于获得访问者的信任和保护关键信息至关重要。CSR 对于确保 SSL 证书中包含正确的数据至关重要。
联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:
数据库访问控制:揽阁LGPAC系统
通用HSM:Luna HSM、ProtectServer HSM
支付HSM:payShield 10K
您还可以得到揽阁信息所提供的优质服务。
揽阁信息 · 值得您信赖的信息安全顾问!