PingAccess

Assigning key pairs

Assign a key pair to a virtual host or HTTPS listener.

PingAccess listens for HTTPS requests on the Admin, Engine, and Agent ports in all deployments, and on the Config query port in clustered deployments.

You must assign a key pair to each listener. By default, the listeners are configured for HTTPS and use pregenerated key pairs associated with localhost.

If using virtual hosts, the following settings take precedence over any applicable HTTPS or engine listeners for the virtual host:

  • A trusted certificate group configured for a virtual host.

  • An engine key pair configured for association with a virtual host.

HTTPS Listener Descriptions
HTTPS Listener Description

Admin

Listens for requests for the administrative console and the PingAccess REST APIs.

Engine

Listens for HTTP or HTTPS requests proxied to target web servers associated with Sites. Learn more in Engine listeners.

Agent

Listens for requests from PingAccess agents.

Sideband

Listens for requests from sideband clients.

Config query

Listens for requests for configuration information from replica admin nodes and engine nodes in clustered deployments.

If you assign a new key pair to the config query listener, any clustered PingAccess engine nodes automatically rotate their key pair to match. Learn more in Automatic engine node key rotation for config-query listeners.

  • To virtual hosts

  • To HTTPS listeners

Assigning key pairs to virtual hosts

About this task

To assign a key pair to a virtual host:

Steps

  1. Click Security, then go to Key Pairs > Key Pairs.

  2. Click the Pencil icon, and then click Assign Virtual Host for the key pair.

  3. In the Virtual Hosts list, select the virtual hosts that you want to use the key pair with.

    When you assign a key pair to a virtual host, the key pair is also assigned to all other virtual hosts with the same host name.

  4. Click Save.

Assigning key pairs to HTTPS listeners

About this task

To assign a new key pair for an active HTTPS listener:

Steps

  1. Click Security, then go to Key Pairs > Key Pairs.

  2. Click the Pencil icon, and then click Assign HTTPS Listener for the key pair.

  3. In the Listeners list, select the HTTPS listeners that you want to use the key pair with.

    New connections use any of the changes you make to an HTTPS listener’s active key pair, but existing connections continue to use the old configuration.

  4. Click Save.

Cipher suite ordering for HTTPS listeners

PingAccess supports the use of a defined cipher suite order to ensure that the most secure cipher suites are used first, regardless of the client request. By default, new PingAccess installations and PingAccess environments upgraded to 5.1 or later use this cipher suite ordering.

  • You can use the tls.default.cipherSuites property in the <PA_HOME>/conf/run.properties file to change the cipher suite order.

  • To direct PingAccess to use the cipher suite order provided by the client instead, use the PingAccess API /httpsListeners endpoint to set the useServerCipherSuiteOrder property to false.

    Learn more in PingAccess API endpoints.

Automatic key rotation for config query listeners

When you assign a new key pair to the config query listener, PingAccess creates a key rotation window automatically, beginning the process of rotating key pairs on any clustered engine nodes without restarting those nodes. The following occurs:

  • PingAccess opens a temporary port that uses the new key pair. Meanwhile, the old key pair remains accessible on the original port.

    The temporary port is configurable using the clusterconfig.temp.rotation.port property in the run.properties file. Learn more in the PingAccess configuration file reference.

    You can also configure how long the rotation window stays open. Learn more in the Cert rotation section of the configuration file reference.

  • Configured engine nodes poll the /engines/rest/config-query-certificate endpoint continually at a set interval. Polling this endpoint allows the engine nodes to detect and retrieve the new key pair.

    For any engines that aren’t running when the key rotation window opens, if you start those engines up at any point during the window, they’ll still rotate the key.

  • The engine nodes save the new key pair to their bootstrap.properties file, wait until any active configuration changes happening on the engine node are complete, and then start using the new key pair.

  • When polling the /engines/rest/config-query-certificate endpoint for configuration changes, each engine node uses the X-PA-Active-Cert-Fingerprint header to send a fingerprint of the key that’s currently in its truststore.

  • The PingAccess admin console tracks which engines have updated using the fingerprint headers. Once all the engine nodes are using the new key pair, the admin console switches the new key pair to the original port, and then closes the temporary port and the rotation window.

How do I know if autorotation is working?

  • The PingAccess admin console shows a warning banner while the rotation window is open.

  • You can use the PingAccess log to keep track of the specific changes as they’re happening.

  • If you check the bootstrap.properties file after the rotation window closes, you should see a comment along the lines of PingAccess engine bootstrap properties updated by cert rotation, followed by a timestamp.