You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否向使用HSM的CA提交自制CSR(PKCS#10文件)?如何操作?

问题解答

一、自行生成CSR提交给CA是否可行?

通常来说,合规的CA(包括你提到的「DIRECCIÓN NACIONAL DE FIRMA DIGITAL」)应该支持申请者自行提交符合PKCS#10标准的CSR,但前提是你需要通过CA的身份核验,且能证明对密钥对的控制权。不过最稳妥的方式是直接咨询该CA的官方支持团队,确认他们是否接受外部生成的CSR,以及有没有特定格式要求(比如密钥算法必须为RSA 2048/4096、是否需要指定证书扩展项等)——部分国家的官方CA可能强制要求密钥对在其指定环境生成,必须先确认这点。

二、用Luna HSM配合OpenSSL生成CSR的方法

若CA确认接受外部CSR,可按以下步骤在Luna HSM中生成密钥对并导出CSR(私钥全程存储在HSM内,不会泄露到本地):

1. 配置OpenSSL关联Luna引擎

确保已安装Luna HSM客户端软件,且OpenSSL可调用Luna引擎(通常为libluna.so类库),可选择两种配置方式:

临时命令行指定(推荐,无需修改全局配置)

后续所有OpenSSL命令前添加-engine luna参数即可,先验证引擎是否正常加载:

openssl engine -t -c luna

永久修改配置文件

编辑openssl.cnf,添加以下内容(替换为你的Luna引擎实际路径):

[engine_section]
luna = luna_section

[luna_section]
engine_id = luna
dynamic_path = /usr/lib64/openssl/engines-3/libluna.so  # 替换为你的引擎路径
default_algorithms = ALL
# PIN可在此指定,或后续命令行输入

2. 在Luna HSM中生成密钥对

执行命令生成密钥对,密钥直接存储在HSM内,本地仅生成无实际私钥的密钥引用文件:

# 生成2048位RSA密钥对,dummy.key为本地引用文件
openssl genrsa -engine luna -out dummy.key 2048

3. 生成PKCS#10格式的CSR

基于HSM内的密钥对生成CSR,执行后按提示填写符合CA要求的证书请求信息:

openssl req -engine luna -new -key dummy.key -out your_csr.pem

若CA要求特定证书扩展项(如密钥用途、扩展密钥用途),可通过配置文件指定:

  1. 在openssl.cnf的[req]段添加:
    req_extensions = v3_req
    
  2. 添加[v3_req]段定义扩展:
    [v3_req]
    keyUsage = digitalSignature, nonRepudiation
    extendedKeyUsage = clientAuth, serverAuth
    
  3. 生成CSR时带上扩展参数:
    openssl req -engine luna -new -key dummy.key -out your_csr.pem -extensions v3_req
    

4. 验证CSR正确性

生成后验证CSR内容,确认其关联的密钥在HSM内:

openssl req -engine luna -in your_csr.pem -text -noout

注意事项

  • 确保你的Luna HSM用户账号拥有生成密钥和签名的权限,否则操作会失败。
  • 全程不要导出私钥到本地,所有操作通过Luna引擎在HSM内完成,保障密钥安全。

内容的提问来源于stack exchange,提问作者user3281302

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 22:50:12