{"id":2360,"date":"2022-10-12T18:41:14","date_gmt":"2025-10-13T20:17:49","guid":{"rendered":"https:\/\/netcloud24.com\/knowledgebase\/how-to-install-webmin-with-free-let-039-s-encrypt-ssl-on-rocky-linux-8-2\/"},"modified":"2025-08-10T09:19:45","modified_gmt":"2025-08-10T08:19:45","slug":"how-to-install-webmin-with-free-let-039-s-encrypt-ssl-on-rocky-linux-8-2","status":"publish","type":"post","link":"https:\/\/netcloud24.com\/knowledgebase\/how-to-install-webmin-with-free-let-039-s-encrypt-ssl-on-rocky-linux-8-2\/","title":{"rendered":"Linux VPS &#038; VPS Windows Setup Guide | NetCloud24 Webmin with Free Let&#8217;s Encrypt SSL on Rocky Linux 8"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h1>How to Install Webmin with Free Let&#8217;s Encrypt SSL on Windows VPS<\/h1>\n<p>Author: <span class=\"author\">\u0141ukasz Bod\u017aiony, CEO of <a href=\"https:\/\/netcloud24.com\">NETCLOUD24.COM<\/a><\/span> | <a href=\"https:\/\/ca.netcloud24.com\">Windows VPS<\/a><\/p>\n<p>Webmin is a powerful web-based interface for system administration on Unix-like systems. This guide, authored by <span class=\"author\">\u0141ukasz Bod\u017aiony, CEO of NETCLOUD24.COM<\/span>, provides instructions for installing Webmin (current version 2.402 as of August 2025) on Rocky Linux 8, FreeBSD, Ubuntu, Debian, or AlmaLinux 12 using manual setup, Docker, Ansible, Kubernetes, and Terraform, with Let&#8217;s Encrypt SSL via Nginx reverse proxy. For reliable VPS hosting, explore <a href=\"https:\/\/us.netcloud24.com\/\">Netcloud24<\/a>.<\/p>\n<div class=\"promo\">\n<h3>Power Your Webmin with Netcloud24<\/h3>\n<p>Host Webmin on a high-performance Windows VPS from Netcloud24, recommended by <span class=\"author\">\u0141ukasz Bod\u017aiony, CEO of NETCLOUD24.COM<\/span>. Explore our services:<\/p>\n<ul>\n<li><a href=\"https:\/\/ie.netcloud24.com\">United States (EN)<\/a><\/li>\n<li><a href=\"https:\/\/uk.netcloud24.com\/\">United Kingdom<\/a><\/li>\n<li><a href=\"https:\/\/ca.netcloud24.com\/\">Canada<\/a><\/li>\n<li><a href=\"https:\/\/fr.netcloud24.com\/\">France<\/a><\/li>\n<li><a href=\"https:\/\/de.netcloud24.com\/\">Germany<\/a><\/li>\n<li><a href=\"https:\/\/es.netcloud24.com\/\">Spain<\/a><\/li>\n<li><a href=\"https:\/\/it.netcloud24.com\/\">Italy<\/a><\/li>\n<li><a href=\"https:\/\/pt.netcloud24.com\/\">Portugal<\/a><\/li>\n<li><a href=\"https:\/\/nl.netcloud24.com\/\">Netherlands<\/a><\/li>\n<li><a href=\"https:\/\/sk.netcloud24.com\/\">Slovakia<\/a><\/li>\n<li><a href=\"https:\/\/cz.netcloud24.com\/\">Czech Republic<\/a><\/li>\n<\/ul>\n<\/div>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>VPS running Rocky Linux 8, FreeBSD, Ubuntu, Debian, or AlmaLinux 12 (e.g., from <a href=\"https:\/\/us.netcloud24.com\/\">Netcloud24<\/a>)<\/li>\n<li>SSH access with root or sudo privileges<\/li>\n<li>A registered domain name<\/li>\n<li>Basic knowledge of Linux\/FreeBSD commands<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Method 1: Manual Setup<\/h2>\n<h3>Step 1: Update System and Install Dependencies<\/h3>\n<p><strong>Rocky Linux 8 \/ AlmaLinux 12:<\/strong><\/p>\n<pre>sudo dnf update -y\r\nsudo dnf install -y wget perl nginx\r\n<\/pre>\n<p><strong>Ubuntu \/ Debian:<\/strong><\/p>\n<pre>sudo apt update &amp;&amp; sudo apt upgrade -y\r\nsudo apt install -y wget perl nginx\r\n<\/pre>\n<p><strong>FreeBSD:<\/strong><\/p>\n<pre>sudo pkg update &amp;&amp; sudo pkg upgrade -y\r\nsudo pkg install -y wget perl5 nginx\r\n<\/pre>\n<h3>Step 2: Install Webmin<\/h3>\n<p><strong>Rocky Linux 8 \/ AlmaLinux 12:<\/strong><\/p>\n<pre>curl -o webmin-setup-repo.sh https:\/\/raw.githubusercontent.com\/webmin\/webmin\/master\/webmin-setup-repo.sh\r\nsh webmin-setup-repo.sh\r\nsudo dnf install webmin\r\n<\/pre>\n<p><strong>Ubuntu \/ Debian:<\/strong><\/p>\n<pre>curl -o webmin-setup-repo.sh https:\/\/raw.githubusercontent.com\/webmin\/webmin\/master\/webmin-setup-repo.sh\r\nsh webmin-setup-repo.sh\r\nsudo apt-get install webmin --install-recommends\r\n<\/pre>\n<p><strong>FreeBSD:<\/strong><\/p>\n<pre>cd \/tmp\r\nwget https:\/\/download.webmin.com\/download\/webmin-current.tar.gz\r\ngunzip webmin-current.tar.gz\r\ntar xf webmin-current.tar\r\ncd webmin-*\r\n.\/setup.sh \/usr\/local\/webmin\r\n<\/pre>\n<h3>Step 3: Configure Nginx as Reverse Proxy<\/h3>\n<p>Create the configuration file:<\/p>\n<p><strong>Rocky Linux 8 \/ AlmaLinux 12 \/ Ubuntu \/ Debian:<\/strong><\/p>\n<pre>sudo nano \/etc\/nginx\/conf.d\/webmin.conf\r\n<\/pre>\n<p><strong>FreeBSD:<\/strong><\/p>\n<pre>sudo nano \/usr\/local\/etc\/nginx\/webmin.conf\r\n<\/pre>\n<p>Add the following:<\/p>\n<pre>server {\r\n    listen 80;\r\n    server_name yourdomain.com;\r\n    location \/ {\r\n        proxy_pass https:\/\/localhost:10000\/;\r\n        proxy_set_header Host $host;\r\n        proxy_set_header X-Real-IP $remote_addr;\r\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n        proxy_set_header X-Forwarded-Proto $scheme;\r\n    }\r\n}\r\n<\/pre>\n<p>Restart Nginx:<\/p>\n<pre>sudo systemctl restart nginx  # For Linux\r\nsudo service nginx restart    # For FreeBSD\r\n<\/pre>\n<h3>Step 4: Access Webmin<\/h3>\n<p>Access Webmin at <code>http:\/\/yourdomain.com<\/code> and log in with your system credentials.<\/p>\n<h2>Method 2: Docker Setup<\/h2>\n<h3>Step 1: Install Docker<\/h3>\n<p><strong>Rocky Linux 8 \/ AlmaLinux 12:<\/strong><\/p>\n<pre>sudo dnf install -y docker\r\nsudo systemctl enable --now docker\r\n<\/pre>\n<p><strong>Ubuntu \/ Debian:<\/strong><\/p>\n<pre>sudo apt install -y docker.io\r\nsudo systemctl enable --now docker\r\n<\/pre>\n<p><strong>FreeBSD:<\/strong><\/p>\n<pre>sudo pkg install -y docker\r\nsudo sysrc docker_enable=\"YES\"\r\nsudo service docker start\r\n<\/pre>\n<h3>Step 2: Run Webmin with Docker<\/h3>\n<pre>sudo docker run -d --name webmin -p 10000:10000 -v webmin-data:\/etc\/webmin webmin\/webmin:latest\r\n<\/pre>\n<p>Configure Nginx reverse proxy as above, pointing to http:\/\/localhost:10000\/ if needed.<\/p>\n<h2>Method 3: Ansible Setup<\/h2>\n<h3>Step 1: Install Ansible<\/h3>\n<p><strong>Rocky Linux 8 \/ AlmaLinux 12:<\/strong><\/p>\n<pre>sudo dnf install -y ansible\r\n<\/pre>\n<p><strong>Ubuntu \/ Debian:<\/strong><\/p>\n<pre>sudo apt install -y ansible\r\n<\/pre>\n<p><strong>FreeBSD:<\/strong><\/p>\n<pre>sudo pkg install -y py39-ansible\r\n<\/pre>\n<h3>Step 2: Create Ansible Playbook<\/h3>\n<pre>mkdir webmin-ansible &amp;&amp; cd webmin-ansible\r\nnano webmin.yml\r\n<\/pre>\n<p>Add to <code>webmin.yml<\/code> (adjust for OS):<\/p>\n<pre>---\r\n- hosts: all\r\n  become: yes\r\n  tasks:\r\n    - name: Download setup script\r\n      get_url:\r\n        url: https:\/\/raw.githubusercontent.com\/webmin\/webmin\/master\/webmin-setup-repo.sh\r\n        dest: \/tmp\/webmin-setup-repo.sh\r\n        mode: '0755'\r\n    - name: Run setup script\r\n      command: sh \/tmp\/webmin-setup-repo.sh\r\n    - name: Install Webmin (RPM)\r\n      dnf:\r\n        name: webmin\r\n        state: present\r\n      when: ansible_distribution in ['Rocky', 'AlmaLinux']\r\n    - name: Install Webmin (DEB)\r\n      apt:\r\n        name: webmin\r\n        state: present\r\n        install_recommends: yes\r\n      when: ansible_distribution in ['Ubuntu', 'Debian']\r\n<\/pre>\n<p>For FreeBSD, adapt for tar installation.<\/p>\n<h3>Step 3: Run Playbook<\/h3>\n<pre>ansible-playbook webmin.yml\r\n<\/pre>\n<h2>Method 4: Kubernetes Setup<\/h2>\n<h3>Step 1: Install Kubernetes<\/h3>\n<p>Install kubeadm or k3s as per OS.<\/p>\n<h3>Step 2: Deploy Webmin<\/h3>\n<pre>kubectl apply -f - &lt;<\/pre>\n<h2>Method 5: Terraform Setup<\/h2>\n<h3>Step 1: Install Terraform<\/h3>\n<p>Install as per OS.<\/p>\n<h3>Step 2: Create Configuration<\/h3>\n<pre>mkdir webmin-terraform &amp;&amp; cd webmin-terraform\r\nnano main.tf\r\n<\/pre>\n<p>Example for AWS:<\/p>\n<pre>provider \"aws\" {\r\n  region = \"us-east-1\"\r\n}\r\nresource \"aws_instance\" \"webmin\" {\r\n  ami           = \"ami-example\" # Replace with appropriate AMI\r\n  instance_type = \"t2.medium\"\r\n  user_data     = &lt;&lt;-EOF\r\n                  #!\/bin\/bash\r\n                  curl -o webmin-setup-repo.sh https:\/\/raw.githubusercontent.com\/webmin\/webmin\/master\/webmin-setup-repo.sh\r\n                  sh webmin-setup-repo.sh\r\n                  dnf install -y webmin\r\n                  EOF\r\n}\r\n<\/pre>\n<h3>Step 3: Apply<\/h3>\n<pre>terraform init\r\nterraform apply\r\n<\/pre>\n<h2>Configuring Let&#8217;s Encrypt SSL<\/h2>\n<h3>Step 1: Install Certbot<\/h3>\n<p><strong>Rocky \/ AlmaLinux \/ Ubuntu \/ Debian:<\/strong><\/p>\n<pre>sudo dnf install -y certbot python3-certbot-nginx  # RPM\r\nsudo apt install -y certbot python3-certbot-nginx  # DEB\r\n<\/pre>\n<p><strong>FreeBSD:<\/strong><\/p>\n<pre>sudo pkg install -y py39-certbot py39-certbot-nginx\r\n<\/pre>\n<h3>Step 2: Obtain Certificate<\/h3>\n<pre>sudo certbot --nginx -d yourdomain.com\r\n<\/pre>\n<h2>Conclusion<\/h2>\n<p>This guide, authored by <span class=\"author\">\u0141ukasz Bod\u017aiony, CEO of <a href=\"https:\/\/netcloud24.com\">NETCLOUD24.COM<\/a><\/span>, covers Webmin installation with Let&#8217;s Encrypt SSL. Choose <a href=\"https:\/\/us.netcloud24.com\/\">Netcloud24<\/a> for hosting.<\/p>\n<div class=\"promo\">\n<h3>Why Choose Netcloud24?<\/h3>\n<p>Netcloud24, led by <span class=\"author\">\u0141ukasz Bod\u017aiony<\/span>, offers top VPS solutions. Visit:<\/p>\n<ul>\n<li><a href=\"https:\/\/us.netcloud24.com\/\">United States<\/a><\/li>\n<li><a href=\"https:\/\/ca.netcloud24.com\/\">Canada<\/a><\/li>\n<li><a href=\"https:\/\/uk.netcloud24.com\/\">United Kingdom<\/a><\/li>\n<li><a href=\"https:\/\/fr.netcloud24.com\/\">France<\/a><\/li>\n<li><a href=\"https:\/\/de.netcloud24.com\/\">Germany<\/a><\/li>\n<\/ul>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; How to Install Webmin with Free Let&#8217;s Encrypt SSL on Windows VPS Author: \u0141ukasz Bod\u017aiony, CEO of NETCLOUD24.COM | Windows VPS Webmin is a powerful web-based interface\u2026<\/p>\n","protected":false},"author":1,"featured_media":3421,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-2360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=2360"}],"version-history":[{"count":6,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2360\/revisions"}],"predecessor-version":[{"id":4148,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2360\/revisions\/4148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media\/3421"}],"wp:attachment":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=2360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=2360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=2360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}