Linux OpenSSL生成证书

概念

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA(例如中国各地方的CA公司)中心签发的证书,也可以由企业级CA系统进行签发。

一般证书分有三类,根证书、服务器证书和客户端证书。根证书,是生成服务器证书和客户端证书的基础,是信任的源头,也可以叫自签发证书,即CA证书。服务器证书,由根证书签发,配置在服务器上的证书。客户端证书,由根证书签发,配置在服务器上,并发送给客户,让客户安装在浏览器里的证书。

生成证书前系统必须安装openssl,可通过以下命令查看是否有安装。。

openssl version -a

创建根证书CA

使用openssl version -a 命令可以查看opensssl的版本以及安装路径。
Linux OpenSSL生成证书_第1张图片

到该目录下找到openssl的配置文件openssl.cnf.配置文件中对证书的名称和存放位置等相关信息都做了定义。
Linux OpenSSL生成证书_第2张图片

根据配置文件,到CA根目录下,若没有自己创建。
mkdir /usr/lib/ssl/demoCA/

根据配置文件,在创建几个目录。
mkdir -pv {
     certs,crl,newcerts,private}

构建相关文件:
echo 构建索引文件index.txt
echo 0>index.txt
echo 构建序列号文件serial
echo 01>serial

开始建立根证书

1制作私钥:
(注意:私钥的文件名与存放位置要与配置文件中的设置相匹配)
openssl genrsa -des3 -out private/ca.key.pem.pem 2048

参数说明:
openssl >>指进入openssl环境.
genrsa >>openssl中的一个小应用程序,用来产生rsa私钥。
-des3 >>是指将产生的私钥用triple DES进行加密。这是个可选项,还有-des -idea都是对称加密算法,随你自己选择.
-out >>输出路径,这里指private/ca.key.pem
2048 >>指私钥的长度,单们是bit,默认是512

2.填写证书申请表:
openssl req -new -key private/ca.key.pem -out ca.req.pem
提示你私钥的密码,一步一步输入就行了。
因为证书中要有公钥,和个人信息,所以我们指定私钥,程序推导出公钥,供申请表用。
3.自己签定根签书:
openssl x509 -req -days 1000 -sha1 -extensions v3_ca -signkey private/ca.key.pem -in ca.req.pem -out certs/ca.crt.pem

其中的days是指证书的有效天数,shda1是消息摘要函数算法,默入为md5,-signkey指定用于签证的私钥,运行过程中,要输入私钥的密码和设定书密码。至此,根证书CA建立完成。

制做服务器端的证书并用ca签名:

1、产生一个rsa私钥,在此,我们不用密码保护。
openssl genrsa -out private/serverkey.pem 1024
2、填写证书申请表:
openssl req -new -key private/serverkey.pem -out server.req.pem
3、用先前产生的认证中心的私钥对申请表进行签名:
openssl x509 -req -days 100 -sha1 -extensions v3_req -CA certs/ca.crt.pem -CAkey private/ca.key.pem -CAserial ca.srl -CAcreateserial -in server.req.pem -out certs/server.crt.pem

你可能感兴趣的:(Linux OpenSSL生成证书)