Skip to main content

πŸͺͺ Certificate Configuration Guide

This guide explains the certificate status (cert status) displayed in the app and helps you understand what each status means, what actions you should take, and which settings to configure based on your environment.

Certificate Status Overview​

The app displays the connection security status for each server. Here are all possible statuses:

All certificate statuses
StatusSecurity LevelDescription
HTTPS VerifiedHighestValid CA-signed certificate
HTTPS PinnedHighCertificate fingerprint verified
Don't check SSL certificateLowAll certificate validation disabled
HTTPS Untrusted AllowedLowSelf-signed certificates accepted
HTTPNoneUnencrypted connection
HTTPS Pin MismatchErrorPinned fingerprint doesn't match
HTTPS Untrusted BlockedErrorSelf-signed certificate rejected

Certificate Status Details​

HTTPS Verified​

HTTPS Verified status

What it means:

  • The server has a valid SSL certificate signed by a trusted Certificate Authority (CA)
  • This is the most secure and recommended configuration

When this appears:

  • Server uses a certificate from Let's Encrypt, DigiCert, or other trusted CAs
  • "Allow self-signed certificates" is OFF

User action:

  • No action needed. This is the ideal state.

Recommended for:

  • Production environments
  • Servers accessible over the internet
  • Users with reverse proxy setups using Let's Encrypt

HTTPS Pinned​

HTTPS Pinned status

What it means:

  • The app has saved (pinned) the server's certificate fingerprint
  • Each connection verifies the fingerprint matches the saved value
  • Provides protection against certificate tampering or MITM attacks

When this appears:

  • "Allow self-signed certificates" is ON
  • You've connected and pinned the certificate fingerprint

User action:

  • Verify the fingerprint matches your server's actual certificate (out-of-band verification recommended)
  • If you regenerate your server's certificate, you'll need to update the pin

Recommended for:

  • Self-signed certificate users who want additional security
  • Users who can verify the certificate fingerprint manually
tip

You can view and update the pinned fingerprint from the server's menu by selecting "View certificate" or "Update".

Server menu with Update option

Don't check SSL certificate​

Don't check SSL certificate status

What it means:

  • All SSL/TLS certificate validation is disabled
  • The app accepts any certificate without verification

When this appears:

  • "Don't check SSL certificate" option is ON

User action:

  • Use only on trusted local networks
  • Consider setting up a proper certificate instead
warning

This setting bypasses all security checks. Only use this when absolutely necessary and on trusted networks.

Recommended for:

  • Pi-hole running in Docker without proper TLS termination
  • Temporary troubleshooting
  • Isolated local networks with no external access

HTTPS Untrusted Allowed​

HTTPS Untrusted Allowed status

What it means:

  • The server's certificate is not signed by a trusted CA
  • The app is configured to accept self-signed certificates
  • No certificate pinning is active

When this appears:

  • Server uses a self-signed certificate
  • "Allow self-signed certificates" is ON
  • Certificate has not been pinned yet

User action:

  • For better security, pin the certificate fingerprint when prompted
  • Or consider getting a CA-signed certificate

HTTP​

HTTP status

What it means:

  • Connection is unencrypted
  • Data is transmitted in plain text

When this appears:

  • Server URL uses http:// scheme

User action:

  • Consider enabling HTTPS on your Pi-hole server for better security
  • Acceptable only on isolated local networks
warning

HTTP connections transmit your API token/password in plain text. Anyone on the same network could potentially intercept this data.


HTTPS Pin Mismatch​

HTTPS Pin Mismatch status

What it means:

  • The server's certificate fingerprint doesn't match the pinned value
  • Connection is blocked for security

When this appears:

  • Server certificate was renewed or regenerated
  • Potential MITM attack (rare but possible)

User action:

  1. Verify if you recently changed your server's certificate
  2. If intentional change: Update the pinned fingerprint from server settings
  3. If unexpected: Investigate before updating the pin
danger

If you didn't change your certificate, this could indicate a security issue. Verify your server's certificate before updating the pin.


HTTPS Untrusted Blocked​

HTTPS Untrusted Blocked status

What it means:

  • Server has a self-signed or invalid certificate
  • "Allow self-signed certificates" is OFF
  • Connection is blocked

When this appears:

  • Attempting to connect to a server with self-signed certificate
  • App default settings are in effect but server needs self-signed support

User action:

  • Enable "Allow self-signed certificates" in server settings
  • Or install a CA-signed certificate on your server

Default App Settings​

By default, the app has:

  • Allow self-signed certificates: ON
  • Don't check SSL certificate: OFF
Self-signed certificate setting
info

If your Pi-hole server uses a valid CA-signed certificate (e.g., Let's Encrypt), you should turn OFF "Allow self-signed certificates" to achieve the "HTTPS Verified" status.

Signed certificate setting

After App Update: Backward Compatibility​

v1.8.0 Update Notice

This backward compatibility behavior applies only when updating to v1.8.0.

In v1.8.0, the SSL verification settings were restructured. To prevent existing connections from breaking, servers that had "Allow self-signed certificates" enabled before the update are automatically migrated to a less strict configuration.

For better security, we strongly recommend reviewing each affected server and switching back to the certificate pinning approach.

If you had "Allow self-signed certificates" enabled before updating the app, the update will automatically enable both "Allow self-signed certificates" and "Don't check SSL certificate" for backward compatibility.

As a result, all your HTTPS servers will display the "Don't check SSL certificate" status, and a warning banner will appear:

Warning banner after app update
warning

After the app update, if "Allow self-signed certificates" was ON before the update, all HTTPS servers will show the "Don't check SSL certificate" status. This configuration is less secure than the certificate pinning approach.

If it was OFF before the update, no changes are appliedβ€” your servers will remain in either "HTTPS Verified" or "HTTPS Untrusted Blocked" status.

How to Fix This​

  1. Open the server details screen for the affected server
  2. Turn OFF "Don't check SSL certificate"
  3. Save the settings
  4. The "Allow self-signed certificates" confirmation modal will appear
  5. Verify the certificate fingerprint and tap "Confirm"
Self-signed certificate settingsAllow self-signed certificate confirmation modal

After confirming, the server will show the "HTTPS Pinned" status, which provides stronger security than "Don't check SSL certificate".

Pi-hole in Docker: Special Considerations​

If you're running Pi-hole in Docker, you may encounter connection issues even with "Allow self-signed certificates" enabled.

Docker connection error

This happens because the Pi-hole Docker container's built-in web server certificate cannot be properly validated by the app's TLS implementation.

Solution 1: Disable Certificate Checking (Simple)​

Ignore certificate errors setting
  1. In server settings, enable "Don't check SSL certificate"
  2. Save and reconnect
warning

Only use this on trusted local networks. This disables all certificate validation.

Set up a reverse proxy (nginx, Caddy, Traefik, etc.) in front of Pi-hole:

  1. Configure the reverse proxy to handle TLS termination
  2. Use either a free, valid certificate from Let’s Encrypt or a self-signed certificate on the reverse proxy.
  3. Connect to Pi-hole through the reverse proxy URL

Benefits:

  • Achieve "HTTPS Verified" or "HTTPS Pinned" status
  • Proper certificate management
  • Better security overall

Example with Caddy:

pihole.local {
reverse_proxy pihole:80
tls internal
}

Use CaseRecommended SettingExpected Status
Valid CA certificate (Let's Encrypt)Allow self-signed certificates: OFFHTTPS Verified
Self-signed certificateAllow self-signed certificates: ON, Pin the certHTTPS Pinned
Docker without reverse proxyDon't check SSL certificate: ONDon't check SSL
Local HTTP only-HTTP

Troubleshooting​

Having issues with certificate configuration? Check out the FAQ for common questions and solutions: