setup_ssl_contexts() registers CTX_set_tlsext_servername_callback only on the default (*) context. Per-IP contexts from ipcert entries do not get the callback. When a client connects to a dedicated IP, the per-IP context is used directly, the SNI callback never fires, and the wrong certificate is served regardless of the requested hostname. Fix: register the same SNI callback on every context in %ssl_contexts. The callback function is unchanged. Clients without SNI still receive the per-IP certificate. Clients with SNI get the correct certificate matched by hostname. Related: https://github.com/virtualmin/virtualmin-gpl/pull/1229 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documentation | FAQ | Security | Screenshots | Forum
About
Webmin is a web-based system administration tool for Unix-like servers, and services with about 1,000,000 yearly installations worldwide. Using it, it is possible to configure operating system internals, such as users, disk quotas, services or configuration files, as well as modify, and control open-source apps, such as BIND DNS Server, Apache HTTP Server, PHP, MySQL, and many more.
Usability can be expanded by installing modules, which can be custom made. Aside from this, there are two other major projects that extend its functionality:
- Virtualmin is a powerful, flexible, most popular, and most comprehensive web-hosting control panel for Linux, and BSD systems, with over 150,000 installations worldwide. It is available in an open-source community-supported version, and a more feature-filled version with premium support;
- Usermin presents and controls a subset of user-centred features, rather than administrator-level tasks.
Webmin includes 116 standard modules, and there are at least as many third-party modules.
Requirements
Perl 5.10 or higher.
Installation
For detailed installation instructions check our guide on webmin.com/download page.
Development
Lead developer
Developers
Contributors
License
Webmin is released under the BSD License.

