使用 openssl 命令创建证书申请.note
1、使用 openssl 创建证书申请:
·创建证书申请前,修改一个字段:
vim /etc/ssl/openssl.cnf
# 取消注释,这样openssl就会自动调用 extension
SAN的DNS这里必须,+一个空格
openssl req -out web.req -newkey rsa:2048 -nodes -keyout web.key -subj "/C=CN/L=Guangzhou/O=Worldskills_China/CN=www.cisco.com/" -addext "subjectAltName=DNS:www.cisco.com, DNS:cisco.com,IP:192.168.1.10" //DNS这里必须,+一个空格或
openssl req -out web.req -newkey rsa:2048 -nodes -keyout web.key -subj "/C=CN/L=Guangzhou/O=Worldskills_China/CN=www.cisco.com/" -extensions usr_cert //调用 openssl.cnf 文件
openssl req -out web.req -newkey rsa:2048 -nodes -keyout web.key -subj "/C=CN/L=Guangzhou/O=Worldskills_China/CN=www.cisco.com/" -config /etc/ssl/openssl.cnf -extensions usr_cert
# 不指定 -config 默认就会使用 /etc/ssl/openssl.cnf 文件2、签发证书:
·注意:需要注意,如果采用的是 openssl 的方式签发,那么证书的“O”字段,组织字段,需要与 根CA的 组织一致,才能够正常签发证书,否则会报错:

使用 CA.pl 脚本签发则不会报错
(1)使用 CA.pl 脚本签发:
/usr/lib/ssl/misc/CA.pl -sign //使用脚本签发
# 需要先将证书申请更名为:netreq.pem 才能够被识别到(2)使用 openssl 命令签发:
openssl ca -in web.req -out web.crt(3)使用 openssl 命令签发,提前指定密码,无需交换式输入密码:(适用于 脚本、Ansible)
openssl ca -in web.req -out web.crt -batch -passin pass:'Skill39$$'