How to Connect MinIO on Timeweb to a Domain and Enable HTTPS: Step-by-Step Guide

Blog

24.04.2025

Timeweb offers a ready-made marketplace to deploy MinIO, but by default, it runs on HTTP and without domain binding. In this guide, I’ll show you how to properly connect MinIO to your domain and configure HTTPS to ensure a secure connection. We’ll go through SSL setup, configuration changes, and all the necessary steps for full integration.

What will we do?

  • Bind MinIO to a domain.
  • Install and configure Let’s Encrypt SSL
  • Restart MinIO with HTTPS support.
  • Set up automatic certificate renewal.

Step 1: Bind MinIO to a domain

1.1 Add an A record in DNS

In the Timeweb control panel, add an A record:

  • Name: storage.yourdomain.com (or another name)
  • Type: A
  • Value: Your server’s IP address

Changes may take up to 1 hour.

1.2 Check MinIO

Connect to your server via SSH:

ssh root@your-server-ip

Check MinIO status:

systemctl status minio

If MinIO is running, you’ll see:

● minio.service - MinIO Storage Server
   Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
   Active: active (running) since ...

Step 2: Install Let’s Encrypt SSL Certificate

2.1 Install Certbot

If Certbot is not installed, install it:

sudo apt update && sudo apt install certbot

2.2 Request Let’s Encrypt Certificate

sudo certbot certonly --standalone -d storage.yourdomain.com -d www.storage.yourdomain.com
  • certonly – get certificate only (no auto configuration)
  • --standalone – Certbot will temporarily launch a web server for validation

After success, certificates will be located in:

/etc/letsencrypt/live/storage.yourdomain.com/

Step 3: Configure MinIO to Use HTTPS

3.1 Copy Certificates

MinIO requires certificates in the /etc/minio/certs/ folder.

Create the required folder:

mkdir -p /etc/minio/certs

Copy Let’s Encrypt certificates:

cp /etc/letsencrypt/live/storage.yourdomain.com/fullchain.pem /etc/minio/certs/public.crt
cp /etc/letsencrypt/live/storage.yourdomain.com/privkey.pem /etc/minio/certs/private.key

Set correct permissions:

chown minio-user:minio-user /etc/minio/certs/*
chmod 600 /etc/minio/certs/private.key
chmod 644 /etc/minio/certs/public.crt

3.2 Restart MinIO with HTTPS

Open MinIO service configuration file:

nano /etc/systemd/system/minio.service

Find the ExecStart line and replace it with the following to specify certificate paths and enable web console on port 9001:

ExecStart=/usr/local/bin/minio server --certs-dir /etc/minio/certs --console-address :9001 /home/minio/share/

Open MinIO configuration:

nano /etc/default/minio

Find and update the MINIO_SERVER_URL and MINIO_OPTS lines

MINIO_SERVER_URL=https://storage.yourdomain.com:9000
MINIO_OPTS="--certs-dir /etc/minio/certs --console-address :9001"

Save and exit.

Restart MinIO:

sudo systemctl daemon-reload
sudo systemctl restart minio

Check status:

systemctl status minio

Now MinIO runs over HTTPS and is available at https://storage.yourdomain.com.

Step 4: Automatic certificate renewal

Let’s Encrypt certificates are valid for 90 days. Add automatic renewal in cron every week:

crontab -e

Add the following line:

3 3 * * 0 certbot renew --quiet && systemctl restart minio

This will run SSL renewal every Sunday at 03:03 AM and restart MinIO.

Conclusion

Now MinIO is bound to your domain and works over HTTPS. We have also configured automatic SSL renewal so that MinIO always uses up-to-date certificates. 🚀

Share:

Your reliable IT partner. Only halal solutions, trust, and full technical support for your business growth.

Navigation

About UsProjectsServicesProductsNews & BlogContacts

Working Hours

Weekdays: Monday to Friday from 09:00 to 21:00Saturday: from 09:00 to 18:00Sunday: closed

Contacts

+992 (088) 11-6666info@itlab.tjAyni Street, 16, Dushanbe

© 2026 LABORATORIYAI TEKHNOLOGIYAHOI ITTILOOTI LLC · IT Lab™