HTTP Public Key Pinning 公钥固定介绍

文件名内容
chain.pem浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem包括了cert.pem和chain.pem的内容
privkey.pem证书的私钥
cert1.pem或cert.pem服务端证书
# 分别从服务端证书和中间证书提取 base64 编码
# 
openssl x509 -in cert.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
#
openssl x509 -in chain.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
 

添加以下行并插入适当的 pin-sha256 =“...”的值将在您的nginx上启用HPKP

add_header Public-Key-Pins 'pin-sha256="服务端证书编码"; pin-sha256="中间证书编码"; max-age=5184000; includeSubDomains' always;
# reload nginx
nginx -s reload