Open guirong opened 8 years ago
黄线部分为可选客户端认证
前端开发一般需要将线上文件代理到本地服务器调试文件,https下本地服务器便需要提供证书,证书生成步骤简化:
# 生成私钥 openssl genrsa -out ca.key 2048 # 生成证书请求 openssl req -new -out ca.csr -key ca.key -config openssl.cnf # 生成自认证根证书 openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
openssl genrsa -out server.key 2048 openssl req -new -out server.csr -key server.key -config openssl.cnf # 使用前面根证书签发证书 openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt -extensions v3_req -extfile openssl.cnf
[req] distinguished_name = req_distinguished_name req_extensions = v3_req # 不让用户输入,使用cnf设置内容 prompt = no [ req_distinguished_name ] countryName = CN stateOrProvinceName = xxx localityName = xxx organizationName = xxx organizationalUnitName = xxx commonName = xxx [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:false subjectAltName = @alt_names [alt_names] DNS.1 = *.xxx.com
单独使用根证书直接绑定host没问题,但当被 charels等代理工具代理时,charels本身会有根证书用于客户端验证,此时charels将前面根证书重新签发再送到客户端,客户端会验证失败(chrome,部分android)
TSL/SSL 通讯简化过程
黄线部分为可选客户端认证
证书生成
前端开发一般需要将线上文件代理到本地服务器调试文件,https下本地服务器便需要提供证书,证书生成步骤简化:
生成根CA证书
生成实际server证书
openssl.cnf 参考
为什么不直接使用根证书,还单独再签发证书
单独使用根证书直接绑定host没问题,但当被 charels等代理工具代理时,charels本身会有根证书用于客户端验证,此时charels将前面根证书重新签发再送到客户端,客户端会验证失败(chrome,部分android)
refs