# URL & SSL Certificate

The final step is the configuration of the domain the application will be running on. There are 2 possible setups:

* [The application is running behind a reverse-proxy or load-balancer](#configured-behind-reverse-proxy-load-balancer)
* [The application is exposed to the internet](#configured-with-direct-access-from-the-internet)

### Configured with direct access from the Internet

This indicates that the application or server is not functioning behind a reverse proxy or load balancer.&#x20;

{% hint style="info" %}
The protocol (e.g. `http://` or `https://`) should be omitted in the domain field.
{% endhint %}

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

### Configured behind Reverse Proxy/Load Balancer&#x20;

Setting up a reverse proxy can be done by checking `Application is running behind a load balancer` option. The message on the top indicates how it should be configured at the load balancer side.&#x20;

{% hint style="info" %}
The protocol (e.g. `http://` or `https://`) should be omitted in the domain and hostname field.
{% endhint %}

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

### Troubleshooting SSL Certifications

Sometimes the application does not like the provided ssl certificates. These error could occur:

<details>

<summary>Failed to decode PEM block containing private key</summary>

1. Open keyfile and check if it starts with -----BEGIN PRIVATE KEY-----&#x20;

If there is something above this line, delete it. (Same applies to certificates!)

2. Open your keyfile and check if it is encrypted. (Encrypted private keys start with -----BEGIN ENCRYPTED PRIVATE KEY-----) When it is encrypted, you need to decrypt it. You can do that via openssl (if installed on your machine) in your terminal using the following command:

`openssl rsa -in <encrypted_private.key> -out <decrypted_private.key>`

</details>

#### Server startup problems

<details>

<summary> Could not startup server, Contact Apps For Tableau support when the problem persists</summary>

The app server is unable to start. This can have multiple causes like:&#x20;

* Application is configured as administrator but is currently not running with administrator previleges.&#x20;
* Check if there is no other MailScheduler proces running in the background. Open Task manager and select the `Details` tab. You should have only one process called MailScheduler.&#x20;
* Check if there is no other process running on the port that is configured in MailScheduler. You can do that with this command in cmd:&#x20;

```
netstat -aon
```

* Check is the application log. This log file is located at \<path>/.app-runtime/storage/logs/go-application.log
* Open powershell and navigate to the directory where MailScheduler.exe is located. run this command to manually trigger the application server:&#x20;

```
./MailScheduler.exe serve
```

This command might give more details about what went wrong. If you need more help, you can contact our support.

</details>

<details>

<summary>listen tcp :443: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted</summary>

When this error appears in your go-application.log it is not able to spin the server because the port you have configured is already in use by another program.

</details>


---

# 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.infotopics.com/mailscheduler/getting-started/setup/url-and-ssl-certificate.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.
