Joe Murray Asked: 2018-03-08 16:07:55 +0800 CST2018-03-08 16:07:55 +0800 CST 2018-03-08 16:07:55 +0800 CST 我可以在 :10000 上重复使用 :443 的证书吗 772 我已经使用letsencrypt/certbot 在ubuntu 16.04 上为我的站点设置SSL。我已经安装了 webmin,它正确地抱怨它不安全。我应该怎么做才能让证书在 webmin 端口 10000 上工作?我正在使用阿帕奇。 ssl apache2 webmin letsencrypt 2 个回答 Voted Best Answer Joe Murray 2018-03-13T11:00:30+08:002018-03-13T11:00:30+08:00 如果您没有通过命令行为 Webmin 安装 Let's Encrypt / certbot 模块。 进入 Webmin 接受您的浏览器投诉它是一个不安全的站点。 在 Webmin 中,导航到 Webmin > Webmin 配置、SSL 加密。 单击顶部的 Let's Encrypt 选项卡。 选择证书选项,例如输入没有端口的 webmin 域的域名,然后单击请求证书。 处理任何错误(例如,在命令行上运行的 certbot 创建的目录的写入权限,而 apache 网络服务器不可写入)。 一旦这个 webmin 配置过程完成,它就在 /etc/webmin 下安装了一个证书,该证书只在端口 10000 上工作,默认的 webmin 端口。 您可能希望通过将 yourdomain.com:10000 放入接受https://www.sslshopper.com/ssl-checker.html等端口的证书检查器来验证您的证书是否有效。我不得不摆弄 chrome 才能注意到新证书。 pa4080 2018-03-12T11:33:40+08:002018-03-12T11:33:40+08:00 简短的回答是:是的,你可以。 不幸的是,我不记得确切的步骤,我已经在 2 年前完成了。但我会写下一些主要状态。 Webmin 使用 Lighttpd 网络服务器,这不是 Apache 的配置设置。(不在此状态。) 如果不是,您应该将证书转换为适合 Webmin 的格式。 您可以通过 Webmin 的 Web 界面导入您的证书,或者您可以手动编辑 Webmin 的 Lighttpd 配置文件(/etc/webmin/config我没记错)。 您在哪个端口上使用 HTTPS 并不重要,只是(一旦配置)您的浏览器请求应该https://以http://. 而且因为证书是针对域名的,所以您应该通过域名(和端口)而不是 IP(和端口)访问 Webmin。 目前我不使用 Webmin。对我来说,ssh 连接足以管理远程实例。因此,我建议您将 Apache 配置为类似情况的反向代理,IMO 将是更有用的经验。 在防火墙中打开端口1010(或其他一些空闲端口)。 创建一个新的 Apache 的 VirtualHost 配置文件,基于提供 HTTPS 的配置文件(在 port 上443)。新配置文件的内容应如下所示: <IfModule mod_ssl.c> Listen 1010 <VirtualHost _default_:1010> ServerName my.domain.com ServerAdmin [email protected] ErrorLog ${APACHE_LOG_DIR}/my.domain.com.error.log CustomLog ${APACHE_LOG_DIR}/my.domain.com.access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/my.domain.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/my.domain.com/chain.pem ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass "/" "http://localhost:1000/" ProxyPassReverse "/" "http://localhost:1000/" <Location /> Order allow,deny Allow from all </Location> </VirtualHost> </IfModule> 启用基本 Apache 的代理模块,启用新的虚拟主机并重新启动 Web 服务器: sudo a2enmod proxy proxy_http # [Tab] to find more modules sudo a2ensite <my.domain.com on port 1010>.conf sudo systemctl restart apache2.service 现在您应该可以通过 HTTPS 访问 Webmin,地址如下: https://my.domain.com:1010/ 现在您可以关闭防火墙中的端口1000。
您可能希望通过将 yourdomain.com:10000 放入接受https://www.sslshopper.com/ssl-checker.html等端口的证书检查器来验证您的证书是否有效。我不得不摆弄 chrome 才能注意到新证书。
简短的回答是:是的,你可以。
不幸的是,我不记得确切的步骤,我已经在 2 年前完成了。但我会写下一些主要状态。
Webmin 使用 Lighttpd 网络服务器,这不是 Apache 的配置设置。(不在此状态。)
如果不是,您应该将证书转换为适合 Webmin 的格式。
您可以通过 Webmin 的 Web 界面导入您的证书,或者您可以手动编辑 Webmin 的 Lighttpd 配置文件(
/etc/webmin/config
我没记错)。您在哪个端口上使用 HTTPS 并不重要,只是(一旦配置)您的浏览器请求应该
https://
以http://
. 而且因为证书是针对域名的,所以您应该通过域名(和端口)而不是 IP(和端口)访问 Webmin。目前我不使用 Webmin。对我来说,ssh 连接足以管理远程实例。因此,我建议您将 Apache 配置为类似情况的反向代理,IMO 将是更有用的经验。
在防火墙中打开端口
1010
(或其他一些空闲端口)。创建一个新的 Apache 的 VirtualHost 配置文件,基于提供 HTTPS 的配置文件(在 port 上
443
)。新配置文件的内容应如下所示:启用基本 Apache 的代理模块,启用新的虚拟主机并重新启动 Web 服务器:
现在您应该可以通过 HTTPS 访问 Webmin,地址如下:
现在您可以关闭防火墙中的端口
1000
。