我们有一台服务器(运行在 Ubuntu 20.04 上),可以通过子域 myserver.university.country 访问,我想在服务器上安装 SSL/TLS 证书,以使与服务器的连接加密。这是我第一次管理服务器,当我问周围的人(老板、队友)时,没有人有专业知识可以提供帮助。
我们目前为一些网站提供服务,这些网站需要通过一些非标准端口(即不是 80 或 443,例如 myserver.university.country:8687)登录,而不是通过 apache 或其他主要服务器软件提供服务(我们使用闪亮的服务器)。浏览器显示没有锁定的不安全连接。我们不希望登录凭据被盗或信息被外人获取。
我们正在尝试使用 Let's encrypt通过 certbot获取服务器证书。根据 certbot 文档,这需要打开端口 80(我们不希望该端口可访问)。
安全团队不想向整个互联网开放端口 80,而是希望限制对特定 IP 范围的访问。此外,他们只想在短时间内开放它,我的理解是这会阻止证书的自动更新。然而,certbot未指定范围且可能使用多个 IP。
我们如何才能保证与服务器的连接安全(使用免费资源)?
我不知道该如何正确配置服务器和解决 IT 问题。
答案1
与贵公司的 IT 部门沟通。解释一下,您希望为软件堆栈提供普遍信任的 TLS 证书。提供 Let's Encrypt 作为建议,但请尝试他们可能有的任何其他 PKI 颁发程序。
TLS (x509) 证书没有端口号。作为通用传输应用程序,TLS 可以在任何端口上包装任何协议。
然而 ACMEhttp 挑战获取证书必须通过端口 80。大概是为了确认您可以控制主机,并通过使用知名端口来简化实施。
如果端口 80 不可用,存在 DNS 挑战。您需要一个脚本来使用质询值更新 DNS 记录。
您可以选择 ACME 客户端,并且可以编写脚本以适合您的环境。即便如此,您也不必使用 Let's Encrypt,并且您的组织可能采用不同的方式颁发证书。