实战:全网部署HPKP教程与方法
发布日期:2018-10-10什么是HPKP?HPKP就是让浏览器只信任网站所设置固定的CA(证书颁发结构)公钥,而不是浏览器中所存储的任何一家CA都可以为之签发。以防止证书伪造的目的。下面为大家分享全网部署HPKP教程与方法
HPKP作用
互联网的信任机制完全依赖于CA(证书颁发机构)厂商颁发的证书,而任意一个CA厂商都可以签发任意一个域名的证书,导致攻击者可以从CA厂商(可以参考CA厂商入侵史)开始入手。因此需要使用白名单的方式来选择信任的CA,公钥扎钉public key pinning技术的出现,可以允许你强制指定签发证书的CA,只有指定的CA为你的域名签发的证书才能使用。
目前该技术有三种实现方式,DANE(基于DNSSEC)、HTTP公钥扎钉和TACK(证书密钥可信保证),HTTP公钥钉扎是使用最多的。
HPKP(公钥钉扎)实战部署
1.利用openssl生成证书公钥的pin-sha256指纹数据
openssl x509 -in ssl.pem -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
命令释义:ssl.pem为证书公钥,此方法也适用于文件后缀名的cer证书公钥。
2.利用openssl生成一个新的证书备份请求文件(backup.csr)
openssl req -new -newkey rsa:4096 -nodes -sha256 \ -keyout private.key -out backup.csr
3.通过以上命令生成出来的backup.csr请求文件,用相同的方法,使用openssl再生成backup.csr请求文件的pin-sha256指纹数据,如果已经有ssl.csr证书请求文件,则可以跳过第二步。
openssl x509 -in backup.csr -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
4.部署所生成的pin-sha256指纹数据到wen释义引擎的配置文件中。
Apache
LoadModule headers_module modules/mod_headers.so
Header set Public-Key-Pins "pin-sha256=\"base64+primary==\"; pin-sha256=\"base64+backup==\"; max-age=2592000; includeSubDomains"
Lighttpd
server.modules += ( "mod_setenv" )
$HTTP["scheme"] == "https" {
setenv.add-response-header = ( "Public-Key-Pins" => "pin-sha256=\"base64+primary==\"; pin-sha256=\"base64+backup==\"; max-age=2592000; includeSubDomains")}
Nginx
add_header Public-Key-Pins 'pin-sha256="base64+primary=="; pin-sha256="base64+backup=="; max-age=2592000; includeSubDomains';
命令释义:配置文件中需要把base64+primary==替换成站点的证书公钥pin-sha256指纹数据,base64+backup==则为backup.csr请求文件的pin-sha256指纹数据(可以用相同方法生成多个证书公钥的指纹哈希,以防CA吊销证书引起的站点故障问题。)
最后,使用qualys ssl labs检测网站,结果包含绿条提示"HTTP Public Key Pinning (HPKP) deployed on this server. Yay!
以上,是为大家分享的“全网部署HPKP教程与方法”的全部内容,如果用户遇到的问题不能解决,可通过wosign官网客服寻求帮助,凡是选择wosign ssl证书的网站用户,wosign可提供免费一对一的ssl证书技术部署支持,免除后顾之忧。
相关资讯
HTTPS/TLS专家指出:不应使用HTTP公钥固定HPKP
HTTP公钥固定(或称为HPKP)是HTTPS最具争议的特性之一。它的设计初衷是为了抵御HTTPS所面临的最严重的威胁之一,但它也给了网站操作人员一个不可思议的强大工具,让他们可能受到意外的自我伤害。
最新资讯
Oracle GlassFish v3.1配置SSL证书(方法教程)
标签推荐:ssl证书过期 | 阿里云ssl证书 | https证书申请| 数字签名技术| 火狐浏览器证书| ssl证书更新| 小程序证书