我们有一个服务器(在 Ubuntu 20.04 上运行)可从子域 myserver.university.country 访问,我想在服务器上安装 SSL/TLS 证书以加密与服务器的连接。这是我第一次管理服务器,当我四处询问(老板、队友)时,没有人有专业知识可以提供帮助。
我们目前为一些需要通过一些非标准端口(即不是 80 或 443,例如 myserver.university.country:8687)登录的网站提供服务,这些端口不通过 apache 或其他主要服务器软件提供服务(我们使用Shiny Server)。浏览器在没有锁的情况下显示不安全的连接。我们不希望登录凭据被盗或外人可以访问信息。
我们正在尝试使用 Let's encrypt via certbot来获取我们服务器的证书。根据 certbot 文档,这需要打开端口 80(我们不想访问它)。
安全团队不想向整个 Internet 开放端口 80,并且希望限制对某些 IP 范围的访问。此外,他们只想在短时间内打开它,我的理解是这会阻止证书的自动更新。但是,certbot没有指定范围,可能会使用多个 IP。
我们如何才能安全地连接到我们的服务器(使用免费资源)?
我已经超出了我的深度,不知道如何为此正确配置服务器并解决 IT 问题。
与您组织的 IT 人员交谈。说明您需要为您的软件堆栈提供普遍受信任的 TLS 证书。提供 Let's Encrypt 作为建议,但尝试他们可能拥有的任何其他 PKI 发布程序。
TLS (x509) 证书没有端口号。作为通用传输应用程序,TLS 可以在任何端口上包装任何协议。
然而,获得证书的 ACME http 挑战必须通过端口 80。大概是为了确认您可以控制主机,并通过使用众所周知的端口来简化实现。
如果端口 80 不是一个选项,则存在 DNS 质询。您需要一个脚本来使用挑战值更新 DNS 记录。
您可以选择 ACME 客户端,并且可以编写脚本以适应您的环境。即使这样,您也不必使用 Let's Encrypt,而且您的组织可能有不同的方式来颁发证书。