如何创建自己的证书链?
我想建立自己的OCSP响应器(只是为了测试目的)。这需要我有一个根证书和由它生成的一些证书。
我已经成功地使用openssl创建了一个自签名证书。我想用它作为根证书。下一步是创建衍生证书。然而,我似乎找不到关于如何做到这一点的文档。有人知道在哪里可以找到这些信息吗?
编辑 现在回想起来,我的问题还没有完全解答。为了澄清这个问题,我将这样表示我的证书链。
ROOT -> A -> B -> C -> …
我目前能够创建ROOT和A证书,但我还没有找到如何制作更长的链。
我的创建根证书的命令是
openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem
A证书是这样创建的:
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
这条命令隐含地依赖于根证书,它在openssl配置文件中找到所需信息。
然而,证书B必须只依赖于A,而A并没有在配置文件中注册,所以前面的命令在这里不起作用。
我应该用什么命令行来创建证书B及以后的证书?
编辑 我在【本文】(http://www.ibm.com/developerworks/java/library/j-certgen/)中找到了答案。B证书(链A ->B)可以用这两个命令来创建。
# Create a certificate request
openssl req -new -keyout B.key -out B.request -days 365
# Create and sign the certificate
openssl ca -policy policy_anything -keyfile A.key -cert A.pem -out B.pem -infiles B.request
我还修改了openssl.cnf文件。
[usr_cert]
basicConstraints=CA:TRUE # prev value was FALSE
这种方法似乎很有效。