在使用OpenSSL命令创建证书前,可查看配置文件/etc/pki/tls/openss.conf文件,查看该文件定义了的证书存放位置及名称。
一、server生成证书文件。
1
、生成私钥:openssl genrsa -out server.key 2048
2
、查看私钥内容:
openssl rsa -noout -text -in server.key
3
、使用私钥生成证书基本概要:openssl req -new -key server.key -out server.csr -subj “/C=CN/ST=Jiangxi/L=Nanchang/O=vihoo/OU=QITU/CN=www.qitu.com”(或者使用-config openssl.cnf模板创建概要)
4
、查看概要内容:openssl req -noout -text –in server.csr #概要信息包含:1S0国家代码(两位字符)、所在省份、所在城市、公司名称、部门名称、SSL证书的域名、公钥等
5
、如果交给权威机构来做,我们只需要提交server.csr与相关费用就好了,下面我们使用自建的CA颁发证书。
二、自建CA认证生成数字证书。
首先为CA提供所需的目录及文件,并指明证书的开始编号:
mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
touch /etc/pki/CA/{serial,index.txt}
echo 01 > /etc/pki/CA/serial
#
随后生成私钥,注意私钥的文件名及其存放的位置,需与配置文件中相匹配:
1
、生成私钥:openssl genrsa -out ca.key 2048
2
、使用私钥生成证书基本概要:openssl req -new -key ca.key -out ca.csr -subj “/C=CN/ST=Jiangxi/L=Nanchang/O=vihoo/OU=QITU/CN=www.ca.com”
3、通过证书概要生成根证书(包含CA 公钥信息):openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt -days 3650(如果是权威机构,会将证书内置浏览器、或者开源的SDK中,我们自己创建的,浏览器会提示证书不可信任,需要自己手动点击信任与安装证书。)
4
、使用根证书与根私钥加密 server的证书基本概要,生成server证书:
openssl ca -in server.csr -cert ca.crt -keyfile ca.key -out server.crt
-days 3650
三、client生成证书文件(双向认证前提下使用)。
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl ca
-days 3650
-cert ca.crt -keyfile ca.key -in client.csr -out client.crt
四、
生成pem格式证书:
有时需要用到pem格式的证书,可以用以下方式合并证书文件(crt)和私钥文件(key)来生成
cat client.crt client.key> client.pem
cat server.crt server.key > server.pem
五、查看证书信息
查看证书详情:openssl x509 -in server.crt -text -noout
查看证书部分信息:openssl x509 -in /etc/pki/CA/server.crt -noout -serial -dates -subject
-noout:不输出加密的证书内容;
-serial:输出证书序列号;
-dates:显示证书有效期的开始和终止时间;
-subject:输出证书的subject;
通过私钥生成公钥:openssl rsa -in server.key -pubout -out server_public.key
通过证书提取公钥:openssl_master x509 -in server.crt -pubkey –noout > server_public.key