Public-Key-Pins-Report-Only

The HTTP Public-Key-Pins-Report-Only response header sends reports of pinning violation to the report-uri specified in the header but, unlike Public-Key-Pins still allows brosers to connect to the server if the pinning is violated.

For more information, see the Public-Key-Pins header reference page and the HTTP Public Key Pinning article.

Header type Response header
Forbidden header name no

Syntax

Public-Key-Pins-Report-Only: pin-sha256="<pin-value>"; 
                             max-age=<expire-time>; 
                             includeSubDomains; 
                             report-uri="<uri>"

Directives

pin-sha256="<pin-value>"
The quoted string is the Base64 encoded Subject Public Key Information (SPKI) fingerprint. It is possible to specify multiple pins for different public keys. Some browsers might allow other hashing algorithms than SHA-256 in the future.
max-age=<expire-time>
This directive is meaningless for the Public-Key-Pins-Report-Only header, it will be ignored by user agents and the header will not be cached.
includeSubDomains Optional
If this optional parameter is specified, this rule applies to all of the site's subdomains as well.
report-uri="<uri>"
Pin validation failures are reported to the given URL. This directive should be used with this header, otherwise this header will be a no-op.

Example

Public-Key-Pins-Report-Only: 
  pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="; 
  pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="; 
  max-age=5184000; includeSubDomains; 
  report-uri="https://www.example.org/hpkp-report"

In this example, pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=" pins the server's public key used in production. The second pin declaration pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=" also pins the backup key. max-age=5184000 tells the client to store this information for two months, which is a reasonable time limit according to the IETF RFC. This key pinning is also valid for all subdomains, which is told by the includeSubDomains declaration. Finally, report-uri="https://www.example.org/hpkp-report" explains where to report pin validation failures.

Specifications

Specification Title
RFC 7469, section 2.1: Public-Key-Pins-Report-Only Public Key Pinning Extension for HTTP

Browser compatibility

Feature Chrome Edge Firefox Internet Explorer Opera Safari Servo
Public-Key-Pins-Report-Only46?No support1?33??
Feature Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Public-Key-Pins-Report-Only(Yes)(Yes)?No support?33?

1. See Bugzilla bug 1091177.

See also

Document Tags and Contributors

 Contributors to this page: teoli, fscholz
 Last updated by: teoli,