用于创建和签署客户端证书的SSL中间CA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于创建和签署客户端证书的SSL中间CA相关的知识,希望对你有一定的参考价值。

因此,我有一个自签名的根CA,我用它来创建一个中间CA,这两个CA看起来都很好并且可以正常工作。尝试创建和签署客户端证书时,我打开使用的私钥时收到错误消息,但是当我检查文件时,文件应该存在。这是我为此采取的步骤。

openssl genrsa -aes256 -out intermediate/private/controllers-ecc.key.pem 2048

chmod 400 intermediate/private/controllers-ecc.key.pem

openssl req -config intermediate/ssl_ca_devices.cnf 
    -key intermediate/private/controllers-ecc.key.pem -new -sha256 
    -out intermediate/csr/controllers-ecc.csr.pem

openssl ca -config ./intermediate/ssl_ca_devices.cnf 
      -extensions server_cert -days 375 -notext -md sha256 
      -in ./intermediate/csr/controllers-ecc.csr.pem 
      -out ./intermediate/certs/controllers-ecc.cert.pem

该命令将吐出以下内容:

Using configuration from ./intermediate/ssl_ca_devices.cnf
Error opening CA private key ~/Desktop/ca/intermediate/private/ca-devices-ecc.key.pem
140602185837312:error:02001002:system library:fopen:No such file or directory:bss_file.c:406:fopen('~/Desktop/ca/intermediate/private/ca-devices-ecc.key.pem','r')
140602185837312:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:408:
unable to load CA private key

我可以从字面上复制上面的字符串并打开在打开时出错的文件:

cat ~/Desktop/ca/intermediate/private/ca-devices-ecc.key.pem
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,CA927018408CCDD198827262EB52238A

dFa99Jgfr/ZUeJNWVWjE2lKBCfqJhJlmcqdy4U3hy6e3kkdG27JmKD1EY9uCj2OF
WJV8rat1oncASy+dIci8XT0LOoBQ9rK8nyK+bsm9M1n/5j1moNCyesAUfnjss8kE
DmfYjeJERBwVNgNNfK4dT0ejHRKt5r8PZsxWoURXkjyZ8vn3/4UHSkDTXScgHiML
Jkz7WGSNeXLR6BVgJuuFHht6283Vt8vnKq5gtQMdoEjFks7Da7EA96tEx9xUjHlC
VKGUGPoqcdfiwvfLjbsFBOhM29QBuoMDVyrEbC3cNdywDI39DZLYxCcVjzhzvQQw
Xz5R1YycR1eAS0M+qBMqUOvs/8PHlJCVRLqEJ5M/gYSeXmuKgqZPILfWr5R2vJEA
C3A9+gEWJC8RiyjxEv1gFwGEvgdChmVs30oaxPUjum3aTfVATrT071FP/V57dppw
5YgFA5SXvP15u3LQVYWDt8UOi3YU9zELoSomUZeIeYnKOnmt4CWzo0MKdwDkOrcQ
GoPRP3GB1HhRIrbtwTsBkChDLx+AbOBiI1QXEiEOEC+c0xwf6Ld/nqhpg5nQfypA
ydEjaI9NyG3whCW2LyLZr0gCFomB7CPO8vyvnxEvnJ2AETrczmbzAFmx2VLnzPE4
PWUatzm0tZXoP/8bommP0CqkWwedXhqiIitiCDIdpovynJlg+5ENa7jhFC6z57ty
WQbPkRIFMw+PZPU65hV7OfXVWMNm+rxbB3z5yDryc9lIzaZqVUKgBWjKi0JHF97X
3Fd3RA/t7jZW4oP4ZBP61woINnWZKAXK2DMWFGZ3gElgfFCmAaPr2YKWXzQmHSmS
-----END RSA PRIVATE KEY-----

所以我的问题是,该文件是某种格式错误还是无效,从而导致此错误?还是我不正确地调用文件?

答案
... fopen:No such file or directory:bss_file.c:406:fopen('~/Desktop/ca/intermediate/private/ca-devices-ecc.key.pem','r')

路径~/...不是真实的文件名,但是~被外壳扩展到用户的主目录。如果在外壳程序外部使用(例如在配置文件中),则通常不支持此快捷方式,即您必须指定实际路径,例如/home/whoever/...

以上是关于用于创建和签署客户端证书的SSL中间CA的主要内容,如果未能解决你的问题,请参考以下文章

SSL 证书和添加 CA 根证书

自己做的ssl证书和ca证书有啥区别

ssl不支持怎么办?

如何获取颁发者证书的指纹或公钥?

使用 OpenSSL 创建私有 CA:3 用户证书

ssl支持哪种算法?