××××生成跟CA******
openssl req -new -x509 -days 3650 -keyout privatekey.pem -out CARoot.crt
openssl rsa -in privatekey.pem -out privatekey.pem //去掉密码
中间我出现了unable to write 'random state',查了很多,基本上都是说/.rnd权限的问题,有的改了文件权限就好了,还有就是set 环境变量 export RANDFILE=.rnd
*****生成server端证书*****
首先生成csr文件
openssl req -new -key privatekey.pem -out service.csr -subj "/C=CN/ST=beijing/L=beijing/O=mygroup/OU=mygroup/CN=localhost"
用ca签名证书
openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA CARoot.crt -CAkey privatekey.pem -CAserial ca.srl -CAcreateserial -in service.csr -out server.crt
****生成client端证书*****
首先生成csr文件
openssl req -new -key privatekey.pem -out client.csr -subj "/C=CN/ST=beijing/L=beijing/O=mygroup/OU=mygroup/CN=localhost"
用ca签名证书
openssl x509 -req -days 3650 -sha1 -CA CARoot.crt -CAkey privatekey.pem -CAserial ca.srl -in client.csr -out client.crt
配置apache
<VirtualHost *:443>
...
SSLCertificateKeyFile privatekey.pem
SSLCertificateFile server.crt
SSLCertificateChainFile server.crt
SSLCACertificateFile CARoot.crt
RewriteEngine On
RewriteOptions Inherit
SetEnv HTTPS on
</VirtualHost>
*********************************************************华丽的分割线*************************************************
相关参考:https://yq.aliyun.com/articles/40398