1. 安装 :apt-get install openssl
2. 修改配置文件:
注意不同于网上,位置在:/usr/lib/ssl/openssl.cnf,
将以下项改为自己的位置
dir = /home/ubuntu/pki/demoCA # 自己的位置
3. 创建目录
cd /home/ubuntu/pki/demoCA
mkdir
certs、crl、newcerts、private
touch index.txt
echo 01 > serial
4. 首先需要生成自前证书
1) 生成私钥:
cd private #注意和 openssl.cnf相关,也就是私钥在private 目录中
openssl genrsa -out cakey.pem 2048 #
cakey.pem 名字在
openssl.cnf相关
2)生成证书请求,并自签
运行以下命令,注意
cacert.pem名字和位置与配置文件相关
openssl req -new -x509 -key ./private/cakey.pem -days 7300 -out cacert.pem
参数说明:
-new:生成新证书签署请求
-x509:专用于CA生成自签证书
-key:生成请求时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE:证书的保存路径
要输入国家名、省份名、地区(市)名、组织或公司名、部门名、服务器名、Email地址
注意 组织,公司名。
5.申请证书
可以创建一个目录或者另外一台机器上。
本例:mkdir test
1)创建私钥:
openssl genrsa -out nginx.key 2048
将创建私钥文件:nginx.key
2)生成公钥
openssl req -new -key nginx.key -out nginx.csr
3) 由CA服务器签名
openssl ca -in nginx.csr -out nginx.crt -days 365
签名时注意不成功错误, 组要是组织(Organization Name)等选项要和第4步的自签证书要一致。
注意:上述1)、2)为客户端自己生成,3)才是CA服务器的签名颁发,因此可以现在客户端生成**.csr文件,然后复制(scp)到CA服务器,再执行第3步。
名词解释:
CSR
是
C
ertificate
S
igning
R
equest的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。
CRT
即 certificate的缩写,即证书
可以使用以下方式将pem转换为crt:
openssl x509 -outform der -in cacert.pem -out cacert.crt
6. 产生公钥为椭圆曲线ECC类型的证书
1) 产生私钥:
openssl ecparam -out Ecctest.key -name prime256v1 -genkey
2)
2)生成公钥
openssl req -new -key
Ecctest
.key -out
Ecctest
.csr
3) 由CA服务器签名
openssl ca -in
Ecctest
.csr -out
Ecctest
.crt -days 365
7 产生dsa类型的证书
openssl dsaparam -genkey 512 -out dsa_test.key
openssl req -new -key dsa_test.key -out Dsa_test.csr
openssl ca -in Dsa_test.csr -out dsa_test.crt -days 365