GoCD is an open source continuous delivery service that helps organizations increase productivity and deliver high quality through automation. It is a flexible tool that can help teams deliver well-tested software to production environments.

In this guide, we will configure GoCD to use a trusted Let's Encrypt SSL certificate to prevent browser warnings when accessing the web interface.

You will need to have a GoCD server configured on Ubuntu 16.04, you will need to configure one before starting this guide. The base server requires at least 2G of RAM and 2 CPU cores. GoCD also needs a dedicated partition or disk to use for artifact storage. You will need to have a domain name to acquire an SSL certificate from Let's Encrypt.

Configuring Nginx

sudo nano /etc/nginx/sites-available/default

Open a new upsteam section outside of the server block at the top of the file:

upstream gocd {
server aaa.a.a.a:aaaa;} server {
. . .

Replace aaa.a.a.a:aaaa; with the address that Nginx can use to contact GoCD's HTTP interface.

Now, comment out the try_ files directive in the location block, add a proxy pass to the gocd upstream we defined, using the http:// protocol in the place of try_files and include the proxy_params file.

. . . server . . . location / {
    #try_files $uri $uri/ =404;
    proxy_pass http://gocd;
    include proxy_params;
}

. . .

Save and close the file.

Check the Nginx configuration for syntax errors:

sudo nginx -t

If no errors are found, restart Nginx:

sudo systemctl restart nginx

Your GoCD web UI should now be accessible through your regular domain name with the https:// protocol.

Update the GoCD Site URL

Visit your GoCD server domain in your web browser and log in if necessary:

https://example.com

Click ADMIN in the top menu bar and select Server Configuration from the drop down menu:

In the Server Management section, modify the Site URL to remove the :8154 port specification from the end. If you were using an IP address instead of a domain name previously, change the URL to use your domain name as well:

Scroll down to the bottom of the page and click **SAVE **to implement the change immediately. Your site is now set up to proxy all requests for your domain through Nginx to the GoCD web UI.