要配置Apache的Public-Key-Pins(HPKP)以提高SSL安全性,您需要在Apache的配置文件中添加以下指令:
- 首先,您需要生成证书的公钥指纹。您可以使用以下命令来获取证书的公钥指纹:
openssl x509 -pubkey -noout -in /path/to/certificate.crt | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | base64
- 将生成的公钥指纹添加到HPKP头信息中,并指定最大期限和备用公钥指纹(可选):
Header always set Public-Key-Pins "pin-sha256=\"base64+primary_key\"; pin-sha256=\"base64+backup_key\"; max-age=31536000; includeSubDomains"
在上面的示例中,“base64+primary_key”和“base64+backup_key”分别是您生成的主要公钥指纹和备用公钥指纹。max-age参数指定了HPKP头信息的有效期,以秒为单位。includeSubDomains参数表示此HPKP头信息也适用于所有子域名。
- 将HPKP头信息添加到Apache的虚拟主机配置中。您可以在SSL配置段中添加以下指令:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
...
Header always set Public-Key-Pins "pin-sha256=\"base64+primary_key\"; pin-sha256=\"base64+backup_key\"; max-age=31536000; includeSubDomains"
</VirtualHost>
- 重启Apache服务器以应用新的配置。
通过以上步骤,您可以配置Apache的Public-Key-Pins以提高SSL安全性,并防止中间人攻击。请确保在配置HPKP之前仔细验证和测试您的公钥指纹,以免造成网站不可访问。