How to Install Webmin with free Let's Encrypt SSL Certificate on Ubuntu 22.04

Webmin is a web-based application for managing Linux-based operating systems. It is designed for beginner users who are not familiar with the command line interface. It helps users to edit the configuration file, set up a web server, FTP server, run commands, install packages or manage email forwarding and manage everything via a web browser. It offers a simple and web-based user interface to manage your remote Linux systems.

In this tutorial, we will show you how to install Webmin and secure it with Let's Encrypt on Ubuntu 22.04 server.

Prerequisites

  • A server running Ubuntu 22.04.
  • A valid domain name is pointed to your server.
  • A root password is configured on your server.

Getting Started

Before starting, it is recommended to update your system packages to the latest version. You can do it with the following command:

apt-get update -y
apt-get upgrade -y

Once your system is updated, restart it to implement the changes.

Install Webmin on Ubuntu 22.04

By default, Webmin is not available in the Ubuntu standard repository. So you will need to add a Webmin repository to your system.

First, install the required packages with the following command:

apt-get install software-properties-common apt-transport-https wget -y

Once all the packages are installed, import the Webmin GPG key with the following command:

wget -q http://www.webmin.com/jcameron-key.asc -O- | apt-key add -

Next, add the Webmin repository to your system with the following command:

add-apt-repository "deb [arch=amd64] http://download.webmin.com/download/repository sarge contrib"

Once the repository is added, install the Webmin by running the following command:

apt-get install webmin -y

After the successful installation, you can verify the status of the Webmin service with the following command:

systemctl status webmin

You should see the following output:

? webmin.service - Webmin server daemon
     Loaded: loaded (/lib/systemd/system/webmin.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-18 07:32:41 UTC; 42s ago
    Process: 58866 ExecStart=/usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf (code=exited, status=0/SUCCESS)
   Main PID: 58867 (miniserv.pl)
      Tasks: 1 (limit: 4579)
     Memory: 27.8M
        CPU: 644ms
     CGroup: /system.slice/webmin.service
             ??58867 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf

Sep 18 07:32:38 ubuntu2204 systemd[1]: Starting Webmin server daemon...
Sep 18 07:32:38 ubuntu2204 perl[58866]: pam_unix(webmin:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=  user=root
Sep 18 07:32:41 ubuntu2204 webmin[58866]: Webmin starting
Sep 18 07:32:41 ubuntu2204 systemd[1]: Started Webmin server daemon.

To stop the Webmin service use the following command:

systemctl stop webmin

At this point, Webmin is installed and listening on port 10000. You can verify it with the following command:

ss -antpl

You should get Webmin listening port in the following output:

State       Recv-Q      Send-Q           Local Address:Port            Peer Address:Port     Process                                          
LISTEN      0           4096                   0.0.0.0:10000                0.0.0.0:*         users:(("miniserv.pl",pid=58867,fd=5))    

Access Webmin Web UI

Now, open your web browser and type the URL https://your-ip-address:10000. You should see the message about the untrusted SSL certificate. Because Webmin uses an untrusted self-signed SSL certificate:

Webmin access

Ignore the above message and click on proceed to your-ip (unsafe). You should see the Webmin login page:

Login to Webmin

Provide your root username, password and click on the Sign in button. You should see the Webmin dashboard on the following screen:

Webmin Dashboard

How to Use Webmin

You can now perform several things on your Linux system. In this section, we will show you how to update packages, install git and create a new user with the Webmin web interface.

Install and Update Packages

You can install your desired package and update all packages using the Webmin web interface.

For example, if you want to install a net-tools package, click on the Systems => Software packages. You should see the following screen:

Install packages

Now, select "Package from APT", type net-tools, and click on the Install button. You should see the following screen:

Linux package installation with Webmin

Create and Manage Users

Webmin also allows you to create, edit and delete user accounts on your system.

To create a new user, click on the System => Users and Groups. You should see the following screen:

manage Linux users with Webmin

Click on the Create a new user button. You should see the Create User screen:

Create new Linux user

userd etails

Provide your username, Select Automatic for User ID, Provide your Real Name, For Home Directory, select Automatic, Select Normal Password and type your desired password then click on the Create button to create a new user. You should see the newly created user on the following screen:

List of Linux users

Once you are done, you can proceed to the next step.

Enable SSL on Webmin

By default, Webmin is configured to use a self-signed certificate. So it is recommended to secure Webmin with a trusted SSL certificate.

Before starting, you will need to install Apache in your system. You can install it with the following command:

apt-get install apache2 certbot python3-certbot-apache -y

Once the Apache webserver is installed. Start the Apache service and enable it to start at system reboot with the following command:

systemctl start apache2
systemctl enable apache2

You can verify the status of the Apache service using the following command:

systemctl status apache2

You should get the active status of the Apache server in the following output:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-18 07:47:13 UTC; 11s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 62034 (apache2)
      Tasks: 55 (limit: 4579)
     Memory: 5.1M
        CPU: 39ms
     CGroup: /system.slice/apache2.service
             ??62034 /usr/sbin/apache2 -k start
             ??62038 /usr/sbin/apache2 -k start
             ??62039 /usr/sbin/apache2 -k start

Sep 18 07:47:12 webmin.linuxbuz.com systemd[1]: Starting The Apache HTTP Server...
Sep 18 07:47:13 webmin.linuxbuz.com systemd[1]: Started The Apache HTTP Server.

On the Webmin interface, click on your Networking => Network Configuration then click on the Hostname and DNS. You should see the following screen:

Server hostname configuration

Provide your fully qualified Domain Name into hostname field and click on Save button to apply the configuration changes.

Next, click on the Webmin => Webmin Configuration. You should see the following screen:

Webmin configuration

Now, click on the SSL Encryption. You should see the following screen:

SSL Encryption

Click on the Let's Encrypt Tab, Provide your domain name in Hostnames field, Provide your website root directory in the Other directory fields, and click on the Request Certificate button to install the certificate.

Now, log out from your Webmin interface and log in again using the secure URL https://webmin.linuxbuz.com.

Conclusion

Congratulations! you have successfully installed Webmin with Let's Encrypt SSL on Ubuntu 22.04. You can now install Webmin on your remote server to manage your Linux system through the Webmin web interface. Feel free to ask me if you have any questions.

Share this page:

1 Comment(s)