# Native SSL via ZeroSSL

{% hint style="danger" %}
**ZeroSSL is not recommended as a free implementation; instead, use**[ Let's Encrypt.](/docs/options-for-adding-https/free-native-ssl-via-lets-encrypt.md)
{% endhint %}

{% hint style="danger" %}
**Only use ZeroSSL if you have a compelling reason such as being a commercial customer with a paid certificate.**&#x20;
{% endhint %}

{% hint style="info" %}
Before you begin, make sure Port 443 is open and unblocked by any other application, firewall, or SELinux policies on your server.&#x20;
{% endhint %}

We use ZeroSSL instead of Let's Encrypt as our native SSL implementation for a simpler and more streamlined integration.&#x20;

[ZeroSSL](https://zerossl.com/) allows you to generate trusted certificates through an online wizard right on the front page of their site and download them to your desktop in a zip file:

{% embed url="<https://zerossl.com/>" %}

To get started with ZeroSSL, enter your platform domain name, including subdomain, into the wizard right at the top of their website:

<figure><img src="/files/2hjHFlDHmiB8bAlyqG4u" alt=""><figcaption></figcaption></figure>

Walk through the wizard until you reach the **Verification** step.&#x20;

{% hint style="info" %}
Choose **DNS CNAME** for your Verification Method
{% endhint %}

<figure><img src="/files/KQSuCTg2MNYMiSWZV3SF" alt=""><figcaption></figcaption></figure>

Create a CNAME record on your DNS hosting provider and copy over the content from ZeroSSL:

<figure><img src="/files/10onyM4fjWAE9Nt4agMO" alt=""><figcaption></figcaption></figure>

Using Cloudflare for our example, we'll click Add record and select CNAME from the dropdown

<figure><img src="/files/jZcjlyiIZeEyMJRqtgM6" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/tBPHomPdPoPygbnfWEVx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/CyUQxEzLwaRQSnlI6xaZ" alt=""><figcaption></figcaption></figure>

Back on ZeroSSL click **Next Step** then **Verify Domain**:

<figure><img src="/files/gESDDisCicun3dcL4wpm" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Verified!
{% endhint %}

<figure><img src="/files/4NzD3J2khDD76KZVgkuf" alt=""><figcaption></figcaption></figure>

Download the zip file and you're done on the ZeroSSL website. &#x20;

<figure><img src="/files/9LXLRtSwdTAYEgFSiH41" alt=""><figcaption></figcaption></figure>

Now that you've authenticated your domain with ZeroSSL and downloaded the zip file, you're going to need to copy the zip ZeroSSL provided you with to your platform installation server:

```
scp esp.fivetacofiesta.com.zip root@137.184.6.0:/root
```

Back on the server we're going to extract the archive:

```
unzip esp.fivetacofiesta.com.zip
```

You'll see the archive has extracted three files into the current directory:

```
Archive:  esp.fivetacofiesta.com.zip
 extracting: certificate.crt         
 extracting: ca_bundle.crt           
 extracting: private.key 
```

Now we're going to combine two of the files into a new file using the cat command:

```
cat certificate.crt ca_bundle.crt > certificate_chain.crt
```

Copy our newly created file into the proper directory

```
mv certificate_chain.crt private.key edcom-install/config/
```

Change directory to your platform installation :

```
cd edcom-install
```

Run the automated SSL conversion script:

```
./convert_to_ssl.sh
```

Restart your platform:

```
./restart.sh
```

{% hint style="success" %}
**You're done.**&#x20;

You should now be able to access your platform using https\:// instead of http\://
{% endhint %}

{% hint style="info" %}
You'll need to log in again, as your previous non-SSL cookies are no longer valid.
{% endhint %}

Before ZeroSSL:

<figure><img src="/files/OjegqrqoQ4bsW5SEvfpG" alt=""><figcaption></figcaption></figure>

After ZeroSSL:&#x20;

<figure><img src="/files/tnKur6SEXc437oEQgklB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1UUS66hYfzCeT5C4pSE9" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.emaildelivery.com/docs/options-for-adding-https/native-ssl-via-zerossl.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
