用openssl.exe 来生成证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用openssl.exe 来生成证书相关的知识,希望对你有一定的参考价值。

要做一个带https RESTserver 就一定要通过 openssl.exe 来生成证书

openssl语句


set OPENSSL_CONF=c:\OpenSSL-Win32\bin\openssl.cfg

 

x509证书一般会用到三类文件,key,csr,crt。
Key 是私用密钥,openssl格式,通常是rsa算法。
csr是证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。
crt是CA认证后的证书文件(windows下面的csr,其实是crt),签署人用自己的key给你签署的凭证

*.key:密钥文件,一般是SSL中的私钥;
*.csr:证书请求文件,里面包含公钥和其他信息,通过签名后就可以生成证书;
*.crt, *.cert:证书文件,包含公钥,签名和其他需要认证的信息,比如主机名称(IP)等。
*.pem:里面一般包含私钥和证书的信息。

###生成key

openssl genrsa -des3 -out server.key 2048
//也可以取消上面要求输入的密码
openssl rsa -in server.key -out server.key
###生成csr

openssl req -new -key server.key -out server.csr
需要输入国家,地区,组织,email等信息
最重要的是,有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。
生成的csr文件交给CA签名后形成服务端自己的证书crt
###自己充当CA角色生成crt

####首先需要生成CA角色需要的ca.crt

openssl req -new -x509 -key server.key -out ca.crt -days 3650
####利用上面的ca.crt签名

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

openssl req -new -x509 -key server.key -out server.pem -days 3650

 


CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.
-CA选项指明用于被签名的csr证书
-CAkey选项指明用于签名的密钥
-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成

以上是关于用openssl.exe 来生成证书的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法把用openssl api生成ssl证书的过程用C++实现,也就是通过运行一个程序直接就完成生成证书

Openssl CA证书生成以及双向认证,及windows系统证书批量导出,android cer转bks

如何使用openssl生成RSA公钥和私钥对 / 蓝讯

如何用已有的证书文件和私钥文件生成keystore-CSDN论坛

给IP自建 HTTPS 证书

使用openssl 创建pkcs12 keystore 为啥会出错