Python2.7双向认证一、生成SSL证书准备生成CA根证书生成CA配置文件,得到ca.conf
vi ca.conf [ req ]
default_bits=4096
distinguished _ name=req _ distinguished _ name
[ req_distinguished_name ]
计数名称=计数名称(2letter代码) )。
countryName_default=CN
stateorprovincename=stateorprovincename (完整名称) )。
stateOrProvinceName_default=Sy
位置名称=位置名称(eg,city ) ) ) ) ) ) ) )。
localityName_default=Sy
组织名称=组织名称(eg,公司) ) ) ) )。
organizationname_default=外壳
公共名称=公共名称(e.g.serverfqdnoryourname )。
公共名称_ max=64
commonName_default=CA Test
生成ca私钥,得到ca.key
openssl genrsa -out ca.key 4096
生成ca证书颁发请求,获取ca.csr
OpenSSL req-new-sha 256-out ca.CSR-key ca.key-config ca.conf
配置文件已经有默认值,只需在shell交互时返回到车上即可。
生成ca根证书并获取ca.crtopensslx 509-req-days 3650-Inca.CSR-sign key ca.key-out ca.CRT
生成最终用户证书准备配置文件并获取server.conf
vi server.conf [ req ]
default_bits=2048
distinguished _ name=req _ distinguished _ name
req_extensions=req_ext
[ req_distinguished_name ]
计数名称=计数名称(2letter代码) )。
countryName_default=CN
stateorprovincename=stateorprovincename (完整名称) )。
stateOrProvinceName_default=Sy
位置名称=位置名称(eg,city ) ) ) ) ) ) ) )。
localityName_default=Sy
组织名称=组织名称(eg,公司) ) ) ) )。
organizationname_default=外壳
公共名称=公共名称(e.g.serverfqdnoryourname )。
公共名称_ max=64
commonName_default= www.xxx.com
[ req_ext ]
subjectAltName=@alt_names
[alt_names]
DNS.1= www.xxx.com
DNS.2= www.xxx1.com
IP=10.10.127.12
从Chrome 58开始,使用SAN而不是CN验证地址(位于浏览器地址栏URL中的地址host )。 请注意,配置中写着正确的内容。 IE 11还是使用CN
生成私钥并获取server.keyopensslgenrsa-outserver.key 2048
生成证书颁发请求,并获取server.csropensslreq-new-sha 256-outserver.CSR-key server.key-config server.conf
配置文件已经有默认值。 shell对话时,中途改行就可以了。
使用CA证书生成最终用户证书,然后单击server.crtopensslx 509-req-days 3650-caca.CRT-cake yca.key-cacreateserial-in server.CSR-ouour
检查web服务器配置
python manage.py runserver _ plus-- cert-file server.CRT-- key-file server.key0.0.0. 03:8000
将生成的server.crt和server.key文件放在与APP应用程序相同的目录中。
添加CA根证书
右键单击ca.crt进行安装,并将其安装在“受信任的根证书颁发机构”中。 否则,server.crt还是不可靠。
更换主机
更改为客户端计算机、Windows系统本地测试或主机以访问域名
c :windowssystem32driversetchosts
添加以下内容
127.0.0.1 www.xxx.com
启动web服务,Chrome浏览器访问https://www.xxx.com
FireFox配置只需参考在线教程导入ca证书即可。
二、验证SSL证书生成pem证书使用ca.crt证书生成pem证书
OpenSSL x509-Inca.CRT-out mycert.PEM-outform PEM
python 2.7 mockvimmock.pyimportjsonimportrequestsurl=' https://IP地址:8000/接口路径' req_data={参数列表} requests.packages.uui resp=requests.request (' post ',url,data=JSON.dumps ) req_data ),verify=' mycert
多次尝试在requests中将verify设置为True,但将cert传递到元组方式并返回结果是异常的。 所以为了避免这种现象,我们采用了verify方式。 如果大神用cert方式实现的话,请不要吝惜告诉我。 在此感谢~
感谢超过参考资料的博主!