openssl证书使用说明01

来源:互联网 发布:网络名誉侵权证据 编辑:程序博客网 时间:2024/06/19 03:02



目录:

1)生成证书;

2)测试证书;

一、生成证书

参考:

http://blog.csdn.net/moonhillcity/article/details/52768218

http://blog.csdn.net/as3luyuan123/article/details/16105475

1.1 CA根证书的生成步骤

生成CA私钥(.key)-->生成CA证书请求(.csr)-->自签名得到根证书(.crt)(CA给自已颁发的证书)。

  1. # Generate CA private key   
  2. openssl genrsa -out ca.key 2048   
  3. # Generate CSR   
  4. openssl req -new -key ca.key -out ca.csr  
  5. # Generate Self Signed certificate(CA 根证书)  
  6. openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
在实际的软件开发工作中,往往服务器就采用这种自签名的方式,因为毕竟找第三方签名机构是要给钱的,也是需要花时间的。

1.2 用户证书的生成步骤

生成私钥(.key)-->生成证书请求(.csr)-->用CA根证书签名得到证书(.crt)
1.2.1 服务器端用户证书:
[html] view plain copy
  1. # private key  
  2. $openssl genrsa -des3 -out server.key 1024   
  3. # generate csr  
  4. $openssl req -new -key server.key -out server.csr  
  5. # generate certificate  
  6. $openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key  
1.2.2 客户端用户证书:
[plain] view plain copy
  1. $openssl genrsa -des3 -out client.key 1024   
  2. $openssl req -new -key client.key -out client.csr  
  3. $openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key  
1.2.3 生成pem格式证书: 
有时需要用到pem格式的证书,可以用以下方式合并证书文件(crt)和私钥文件(key)来生成 

$cat client.crt client.key> client.pem 

$cat server.crt server.key > server.pem


1.2.4 将证书导出成浏览器支持的.p12格式 :

openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx -certfile ca.crt

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx -certfile ca.crt


密码:123456

1.2.5 结果:

服务端证书:ca.crt, server.key, server.crt, server.pem,server.pfx

客户端证书:ca.crt, client.key, client.crt, client.pem, client.pfx


注意:

在执行$openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key时可能会出错:

Using configuration from /usr/share/ssl/openssl.cfg I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory 

解决方法:

1)mkdir -p ./demoCA/newcerts 
2)touch demoCA/index.txt 
3)touch demoCA/serial 
4)echo 01 > demoCA/serial