创建目录test
复制示例配置文件openssl-1.0.1c/apps/openssl.cnf到该目录下
修改配置文件openssl.cnf的节[ policy_match ]下将match改为supplied
这样原来默认match的几项,在用户的证书签名请求中便无需保持一致
否则会提示The countryName field needed to be the same等
进入test目录进行以下操作
按照示例配置文件创建目录结构,参考openssl-1.0.1c/apps/CA.sh
mkdir -p demoCA; mkdir -p demoCA/certs; mkdir -p demoCA/crl;
mkdir -p demoCA/newcerts; mkdir -p demoCA/private;
touch demoCA/index.txt; echo "00" > demoCA/serial
创建CA私钥,可以使用选项-des3创建带加密口令的私钥
openssl genrsa -out demoCA/private/cakey.pem 1024
创建CA自签名证书,按照提示输入CA信息,默认输出为pem格式
openssl req -config openssl.cnf -new -x509 -key demoCA/private/cakey.pem -out demoCA/cacert.pem
查看创建的证书信息
openssl x509 -in demoCA/cacert.pem -noout -text -modulus
至此便可以使用该CA颁发证书了
创建一个用户的私钥
openssl genrsa -out u1privkey.pem 1024
创建证书签名请求,根据提示输入相关信息,challenge password可留空
openssl req -new -key u1privkey.pem -out u1csr.pem
用户私钥和证书签名请求可由用户在其他机器上自行生成
查看证书请求
openssl req -noout -text -modulus -in u1csr.pem
创建用户证书,新创建的证书会放置在newcerts目录下,若未带-out选项,可从newcerts目录下复制
openssl ca -config openssl.cnf -in u1csr.pem -out u1crt.pem
openssl x509 -in u1crt.pem -noout -text -modulus
openssl genrsa -out u2privkey.pem 1024
openssl req -new -key u2privkey.pem -out u2csr.pem
openssl ca -config openssl.cnf -in u2csr.pem -out u2crt.pem
openssl genrsa -out u3privkey.pem 2048
openssl req -new -key u3privkey.pem -out u3csr.pem
openssl ca -config openssl.cnf -in u3csr.pem -out u3crt.pem
pem格式证书转换为der格式
openssl x509 -outform der -in u3crt.pem -out u3crt.der
查看der格式证书信息
openssl x509 -inform der -noout -text -modulus -in u3crt.der