【问题标题】:choose the right client certificate - https - ssl related选择正确的客户端证书 - https - ssl 相关
【发布时间】:2021-02-25 13:29:20
【问题描述】:

我有这种情况

  • 为 https 连接和一些虚拟主机配置了 Apache Web 服务器。他们都运行良好,完全没有问题。 Ubuntu 20.04 LTS
  • 其中一个网站,我们称之为 alfa.com,通过 Soap 向远程服务器发送一些消息(我们称之为 beta.com)
  • alfa.com 使用 let'sencrypt 公开一个 crt。每个用户和检查都可以,证书没有问题。
  • 同一台服务器 beta.com 向 alfa.com 发送响应和消息,但 beta.com 需要客户端证书(由 alfa.com 公开),该证书必须是他们提供给我的证书
  • beta.com 所需的证书不能用作 alfa.com 的主要证书,因为它的 CA 不受信任,我不能让我的网站公开“此网站不安全”...

如何将 Let'sEncrypt 证书用于客户端,而将 StrangeCert 用于 beta.com? 任何建议都是有帮助的,除了要求 beta.com 提供另一个证书,这是不可能的。

Apache 代理? iptables?还有什么?

【问题讨论】:

    标签: apache ssl


    【解决方案1】:

    我找到了解决方案! 使用 iptables 和 NAT 链,我能够在 Apache 的另一个虚拟主机部分重定向 beta.com SSL 请求,让“另一个世界”的一面保持不变。

    • 网络上的每个客户端都访问 alfa.com:443 并使用 Let'sEncrypt 证书进行正常、完美的握手。 虚拟主机配置


    服务器名称 alfa.com
    服务器别名www.alfa.com
    ....
    SSLCertificateFile /var/www/clients/client1/ssl/sitecert-le.crt
    SSLCertificateKeyFile /var/www/clients/client1/ssl/sitecert-le.key
    ....
    虚拟主机>

    • 只有 beta.com 对应的源网络(比如 1.2.3.0/24)通过 iptables 中的 trought NAT 链并转到 alfa.com:8080


    服务器名称 alfa.com
    服务器别名www.alfa.com
    ....
    SSLCertificateFile /var/www/clients/client1/ssl/beta.com.crt
    SSLCertificateKeyFile /var/www/clients/client1/ssl/beta.com.key
    ....
    虚拟主机>

    • 这是相关的 iptables 命令

    iptables -t nat -A PREROUTING -p tcp -s 1.2.3.0/20 --dport 443 -j DNAT --to-destination 192.168.1.10:8080
    iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 8080 -j SNAT --to-source 192.168.1.10

    • 当然,为了只允许 beta.com 网络看到 alfa.com:8080,我们可以拒绝彼此访问

    iptables -A 输入 -s ! 1.2.3.0/20 -p tcp --destination-port 8080 -j DROP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 2017-01-02
      • 2017-04-28
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      相关资源
      最近更新 更多