------------------------------------------------------------------------
# 获取paypal.com的证书
openssl s_client -connect paypal.com:443 </dev/null 2>/dev/null | sed -ne '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > paypal.com.pem
# 解码证书
openssl x509 -in paypal.com.pem -text [-noout]
------------------------------------------------------------------------
------------------------------------------------------------------------
# demoCA目录
mkdir demoCA
cd demoCA
mkdir newcerts crl
touch index.txt serial
echo 1000 > serial
# CA生成密钥对,和自签名证书
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -keyout modelCA_key.pem -out modelCA_cert.pem
-------------------------------------------------------------------------
-------------------------------------------------------------------------
# demoAPP目录
mkdir demoAPP
# applicant 生成密钥对
openssl genrsa -aes128 -out bank_key.pem 2048
# 查看秘钥对
openssl rsa -noout -text -in bank_key.pem
# 申请证书请求
req -new -key bank_key.pem -out bank.csr -sha256
openssl req -in bank.csr -text -noout
# 请求签名,获得公钥证书
cd ..
openssl ca -in ./demoApp/bank.csr -out ./demoApp/bank_cert.pem -md sha256 -cert ./demoCA/modelCA_cert.pem -keyfile ./demoCA/modelCA_key.pem
# 检查请求的时候,可能不匹配,修改下openssl.conf
sudo vim /usr/lib/ssl/openssl.cnf
#policy = policy_match
policy = policy_anything
-------------------------------------------------------------------------
-------------------------------------------------------------------------
# 将公钥证书应用到网站
# 使用openssl内置的server,将秘钥和证书放在一个文件中
cp -a bank_key.pem bank.pem
cat bank_cert.pem >> bank.pem
openssl s_server -cert bank.pem -accept 4433 -www
# 在浏览器中访问
# 如果打不开,在浏览器中,导入demoCA/modelCA_cert.pem的证书文件。
# 此证书已在此前安装为一个证书颁发机构
https://www.example.com:4433/
# 使用s_client访问
openssl s_client -connect www.example.com:4433 -CAfile ./demoCA/modelCA_cert.pem
# 配置Appach站点
# 修改配置文件,将秘钥和证书放入ssl目录下。
-------------------------------------------------------------------------