|
1 | 1 | --- |
2 | | -lastUpdated: "09/29/2023" |
| 2 | +lastUpdated: "02/10/2026" |
3 | 3 | title: "Using a Reverse Proxy for HTTPS Tracking Domain" |
4 | | -description: "SparkPost supports HTTPS engagement tracking for customers via self-service for all SparkPost customers. To enable SSL engagement tracking for a domain, additional configuration for SSL keys is required. This resource outlines the use of a reverse proxy to host SSL certificates" |
| 4 | +description: "Guide for enabling HTTPS engagement tracking using a reverse proxy to host TLS certificates" |
5 | 5 | --- |
6 | 6 |
|
7 | 7 | ## Overview |
8 | 8 |
|
9 | | -SparkPost supports secure tracking domains through the use of content delivery networks (CDNs), reverse proxies, or any method where the customer can host the necessary SSL/TLS certificates. It is recommended that our customers use SSL as it provides secure transport for engagement data. It's also necessary to support SparkPost engagement tracking with Google’s AMP for Email. |
| 9 | +SparkPost supports HTTPS engagement tracking for all customers through [Managed HTTPS for Tracking Domains](./managed-https-for-tracking-domains), which automatically issues and renews certificates through Let's Encrypt. This is the recommended and simplest way to enable secure engagement tracking with no infrastructure or maintenance required. |
10 | 10 |
|
11 | | -> Alternative: to configure HTTPS engagement tracking using a CDN, see [this article](./enabling-https-engagement-tracking-on-sparkpost). |
| 11 | +This article describes an alternative approach using a reverse proxy to enable HTTPS engagement tracking with your own certificates. Consider using a reverse proxy if you: |
12 | 12 |
|
13 | | -This post covers how to configure a SparkPost tracking domain, provision an SSL certificate, and be able to use it immediately at SparkPost using a simple reverse proxy. |
| 13 | +- Need to use a specific Certificate Authority other than Let's Encrypt |
| 14 | +- Require Extended Validation (EV) certificates |
| 15 | +- Have compliance requirements for certificate handling |
| 16 | +- Your domain does not support Managed HTTPS due to Let's Encrypt policies |
| 17 | + |
| 18 | +With this approach, your email recipients will see HTTPS links in the emails you send. When they visit a tracked link, your reverse proxy will handle the TLS connection, then pass the HTTP request on to SparkPost. SparkPost will record the click event and redirect the recipient to the original URL. |
| 19 | + |
| 20 | +> **Alternative:** To configure HTTPS engagement tracking using a CDN instead of a reverse proxy, see [this article](./enabling-https-engagement-tracking-on-sparkpost). |
14 | 21 |
|
15 | 22 | ## Prerequisites |
16 | 23 |
|
@@ -42,7 +49,7 @@ If you want to end up with your proxy serving the original domain: |
42 | 49 |
|
43 | 50 | ## Configuring nginx |
44 | 51 |
|
45 | | -This section uses [nginx](https://www.nginx.com/). It is easy to get installed and configured as a reverse proxy and Let’s Encrypt for SSL certificates has support for it. To install nginx, follow the guidelines for your Linux distribution. |
| 52 | +This section uses [nginx](https://www.nginx.com/). It is easy to get installed and configured as a reverse proxy and Let's Encrypt for TLS certificates has support for it. To install nginx, follow the guidelines for your Linux distribution. |
46 | 53 |
|
47 | 54 | Let's Encrypt recommends the use of [**Certbot**](https://letsencrypt.org/getting-started/) to automatically obtain and renew your certificates. |
48 | 55 |
|
@@ -148,11 +155,11 @@ Note: Unnecessary use of -X or --request, GET is already inferred. |
148 | 155 |
|
149 | 156 | ``` |
150 | 157 |
|
151 | | -## Get SSL certificate |
| 158 | +## Get TLS certificate |
152 | 159 |
|
153 | | -The next step is to get the necessary SSL certificate in place so that you can enable HTTPS on your configured tracking domain. Let’s Encrypt can be use to provision free SSL certificates. These steps are very well outlined by nginx in [this article](https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/). |
| 160 | +The next step is to get the necessary TLS certificate in place so that you can enable HTTPS on your configured tracking domain. Let's Encrypt can be used to provision free TLS certificates. These steps are very well outlined by nginx in [this article](https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/). |
154 | 161 |
|
155 | | -After completing this, you will have free SSL certificates installed on your nginx server for the desired tracking defined in the `server.conf`. |
| 162 | +After completing this, you will have free TLS certificates installed on your nginx server for the desired tracking defined in the `server.conf`. |
156 | 163 |
|
157 | 164 | After the certificate is created, you will be asked if you wish to redirect **http** to **https**. It is recommended that you do not redirect, as you may wish to change your tracking domain back to **http** in the future if it becomes necessary. |
158 | 165 |
|
@@ -282,7 +289,7 @@ Add the following configuration (putting your own tracking domain into the `Serv |
282 | 289 |
|
283 | 290 | * [Verify](#verify-tracking-domain-send-test-email) tracking domain, and send test email. |
284 | 291 |
|
285 | | -* Get SSL certificate. Letsencrypt certificates can be issued using "certbot", which automates the process - see [here](https://certbot.eff.org/all-instructions) for detailed steps on many platforms. |
| 292 | +* Get TLS certificate. Let's Encrypt certificates can be issued using "certbot", which automates the process - see [here](https://certbot.eff.org/all-instructions) for detailed steps on many platforms. |
286 | 293 |
|
287 | 294 | ## Add HTTPS proxy configuration |
288 | 295 |
|
@@ -354,4 +361,3 @@ Both proxies set the `X-Forwarded-For` header, which enables SparkPost to report |
354 | 361 | * Set up engagement tracking with the [SMTP API](https://www.sparkpost.com/docs/tech-resources/smtp-engagement-tracking/) for your SMTP traffic to SparkPost. |
355 | 362 |
|
356 | 363 | * If you have a mobile app, and want to enable it to open when a recipient clicks an email link, see [this article](./deep-links-self-serve). |
357 | | -
|
|
0 commit comments