AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 711596
Accepted
Leonard Challis
Leonard Challis
Asked: 2015-08-08 05:20:18 +0800 CST2015-08-08 05:20:18 +0800 CST 2015-08-08 05:20:18 +0800 CST

我可以在 SAN 自签名证书中使用通配符吗?

  • 772

我们有一个可通过 Internet 访问的开发服务器,但受 IP 限制,因此这里的安全性只是允许我们重现实时环境的一种方式,而不是试图确保安全。没有使用顶级域,我们称之为dev.com,但开发人员将每个站点都设置在自己的特定子域中。因此,假设有site1.com,site2.com和site3.com, 然后开发人员george将nico拥有完整的 URL,例如:

  • www.site1.com.george.dev.com
  • www.site2.com.george.dev.com
  • www.site1.com.nico.dev.com
  • ETC

本来以为通配符自签名证书就可以了,后来发现*.dev.com只适用于something.dev.com子域而不是子域。我决定按照这个答案中的说明进行操作。当我使用:

DNS.1 = www.site2.com.nico.dev.com
DNS.2 = www.site1.com.george.dev.com

一切正常,但不幸的是,许多网站都有很多开发人员,所以这里有超过 100 个条目DNS.x。我想知道是否可以在[ alternate_names ]我的openssl.cnf. 我尝试了以下方法:

DNS.1 = dev.com
DNS.2 = www.site1.com.george.dev.com
DNS.3 = *.*.*.nico.dev.com

虽然DNS.2有效,DNS.3但没有,给我NET::ERR_CERT_COMMON_NAME_INVALIDChrome 中的错误。

有没有办法做到这一点,还是我必须生成一个很长的DNS.x条目列表来涵盖所有站点?

我听说通过创建我自己的 CA,这是可能的。我遵循了有关此答案的重要说明。在我自己的 CA 完好无损的情况下,我创建了一个与DNS.1通用名称相同的证书,DNS.2并DNS.3使用如下通配符:

DNS.1 = dev.com
DNS.2 = *.dev.com
DNS.3 = *.*.*.*.nico.dev.com

然后我cacert.pem从上面链接的指南的第一步导入到 chrome 作为受信任的根证书颁发机构并重新启动浏览器。对于每个域配置,我分别将 and 设置为and并SSLCertificateKeyFile测试了几个域:SSLCertificateFileserverkey.pemservercert.pem

  • 当转到主域https://dev.com时,我看到了绿色挂锁!
  • 当转到子域https://www.dev.com时,我还看到了绿色挂锁!
  • 转到 URL https://www.test.com.nico.dev.com时,我看到了错误NET::ERR_CERT_COMMON_NAME_INVALID
  • 当我转到https://www.xxxxxxxxxx.com.nico.dev.com的任何变体时,我看到了错误NET::ERR_CERT_AUTHORITY_INVALID

所以看起来第一级通配符工作正常,但在此之下,它没有。这对于 Chrome 和 IE(使用 Windows 证书)和 Firefox(管理自己的证书)是相同的。

所以我的问题仍然存在,是否可以以这种方式使用 sub-sub(-sub*) 域?

ssl-certificate
  • 2 2 个回答
  • 6410 Views

2 个回答

  • Voted
  1. Aaron
    2015-08-08T12:52:54+08:002015-08-08T12:52:54+08:00

    公开签名证书:

    技术解答

    是的。没有什么可以阻止创建具有任何通配符级别和域组合的通配符子域 SAN 证书。如果您管理自己的内部 CA,则可以使用子域、通配符等的任意组合创建 SAN 证书。

    基于我自己的经验的实用答案

    没有或不太可能...... 我不知道有任何 CA 会向您出售其中之一。我已经向几个 CA 询问了这个解决方案,每个 CA 都立即拒绝了这个请求。我怀疑他们担心提供此类证书会赔钱。他们更喜欢您为每个区域(子域或非子域)使用一个通配符,或者一个最多包含n个条目的 SAN 证书。 n是特定 CA 将限制您的数字。我找不到可以出售混合了通配符子域条目的 SAN 证书的 CA。我会提供我查询的 CA 的列表,但我怀疑这可能不适合这里。

    [更新]

    自签名证书

    我误解了这个问题的意图。我相信需要一个示例 openssl.cnf。 这是一个示例 ,您需要将 DNS 条目替换为通配符子域名。security.stackexchange.com上也有一些关于此设置的帖子。我没有对此进行测试,因为我的需求是围绕可公开访问的 URL,而 CA 不允许将其作为选项。

    • 3
  2. Best Answer
    Sean
    2015-08-14T13:10:59+08:002015-08-14T13:10:59+08:00

    您只能拥有一级通配符。

    *.example.com 将覆盖anything.example.com,但不包括one.anything.example.com。

    *.subdomain.example.com 将处理任何东西.subdomain.example.com。

    • 2

相关问题

  • RHEL/Apache ssl.conf 配置问题

  • IIS7 中的证书信任列表

  • SSL证书的区别?

  • 如何修复邮件服务器 SSL?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve