用 OpenSSL 创建 CA 根证书

用 OpenSSL 创建 CA 根证书

//产生CA根证书私钥
//这个命令是产生 2048bit 长度的RSA秘钥文件,这个秘钥通过一个加密算法加密,在测试时输入的密码是abcd

openssl genrsa -des3 -out caStudy.key 2048

//生成CA根证书
//在这个命令中首先要输入上面产生秘钥时输入的密码,然后分别输入国家公司等信息
//在填写 Common Name 时,是要填写域名,最好填一个有效的域名

openssl req -new -x509 -days 365 -key caStudy.key -out caStudy.crt

//通过以上两条命令就产生了CA根证书,这时候如果用命令

openssl verify caStudy.crt

//对证书进行校验会报错:
//error 18 at 0 depth lookup: self signed certificate
//error caStudy.crt: verification failed
//原因是 OpenSSL 框架没有信任这个证书,需要将这个证书安装到 OpenSSL 框架中
//问题的解释在 http://gagravarr.org/writing/openssl-certs/errors.shtml 此网站中有讲

//安装此证书为OpenSSL信任证书的方式:

//首先将证书转换为 pem 格式

openssl x509 -in caStudy.crt -inform der -outform pem -out caStudy.pem

//在此例中调用指令后显示
3072984832:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:crypto/asn1/tasn_dec.c:1112:
3072984832:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:crypto/asn1/tasn_dec.c:274:Type=X509

//这表示证书本来就是 pem 格式的了,只要更改扩展名就行了

cp caStudy.crt caStudy.pem

//查找openssl安装的目录

openssl version -d

//将生成的 .pem 格式的证书拷贝到此目录下的 certs 目录中

cp …

//计算此证书的哈希值

openssl x509 -noout -hash -in caStudy.pem

//建立软链接

ln -s caStudy.pem b47007ce.0

//将pem格式的证书建立软链接到生成的哈希值.0的文件,这里面的b47007ce是上一步计算哈希值得到的结果

//这时再调用

openssl verify caStudy.crt

//显示 caStudy.crt: OK
//表示证书验证通过

注意:如果这个证书不是自己生成的,而是从别的什么机构获取的,在安装之前务必验证证书的指纹信息
计算证书指纹信息的命令为:
openssl x509 -noout -fingerprint -in caStudy.pem
通过这个指令会计算一个SHA1值的指纹信息

猜你喜欢

转载自blog.csdn.net/qq_27379251/article/details/86061648