第一步:先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
#cd /etc/pki/CA
#openssl genrsa -des3 -out ca.key 1024
(由于windows系统下的ssl_module不支持加密密钥,使用openssl genrsa -out ca.key 1024)
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400。
#chmod 400 ca.key
你可以用下列命令查看它的内容,
#openssl rsa -noout -text -in ca.key
利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
#openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: CN //两个字母的国家代号
State or Province Name: Guangdong //省份名称
Locality Name: Guangzhou //城市名称
Organization Name: //公司名称
Organizational Unit Name: //部门名称
Common Name: //你的姓名
Email Address: //Email地址
生成 ca.crt 文件,将文件属性改为400。
#chmod 400 ca.crt
你可以用下列命令查看它的内容,
#openssl x509 -noout -text -in ca.crt
第二步:下面要创建服务器证书签署请求,
#openssl genrsa -des3 -out server.key 1024
(同上windows下使用openssl genrsa -out server.key 1024)
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400。
#chmod 400 server.key
你可以用下列命令查看它的内容,
#openssl rsa -noout -text -inserver.key
用 server.key 生成证书签署请求 CSR.
#openssl req -new -key server.key-out server.csr
这里也要输入一些信息,和CA中的内容类似。
至于 'extra' attributes 不用输入。
“Common Name: Chen Yang 你的姓名”这条信息请你输入你的服务器的域名或者IP地址
你可以查看 CSR 的细节
#openssl req -noout -text -inserver.csr
第三步:下面可以签署证书了
#openssl ca -config /etc/pki/tls/openssl.cnf -days 3650 -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
注意需要手动创建一个CA目录结构
└─ etc
└─ pki
└─CA
├─newcerts
├─index.txt
├─serial
在CA中建立 index.txt 空文件, serial文件 , serial文件中可输入01
否则运行这个命令会出错:I am unable to access the ./CA/newcerts directory....
将文件属性改为400,并放在安全的地方。
#chmod 400 server.crt
第四步:生成客户端证书
生成客户私钥:
#openssl genrsa -des3 -out client.key 1024
生成客户证书
#openssl req -new -key client.key -out client.csr
签证:
##openssl ca -config /etc/pki/tls/openssl.cnf -days 3650 -cert ca.crt -keyfile ca.key -in client.csr -out client.crt
转换成pkcs12格式,为客户端安装所用
#openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx