【问题标题】:Generate client certificate with principal name with OpenSSL使用 OpenSSL 生成具有主体名称的客户端证书
【发布时间】:2016-12-13 23:51:23
【问题描述】:

我需要在Subject Alternative Name下生成一个带有“NT Principal Name”和“RFC 822 Name”的客户端认证证书,类似于这个证书,如macOS keychain access中所示(被遮挡的字段值为AD UPN如@ 987654329@):

我已经尝试使用 OpenSSL 通过以下命令生成客户端身份验证证书: openssl req -x509 -config cert_config -extensions 'my server exts' -nodes -days 365 -newkey rsa:4096 -keyout client.key -out client.crt

还有这个 cert_config 文件:

[ req ]
    prompt             = no
    distinguished_name = my dn

[ my dn ]
            commonName = Test
           countryName = US
          localityName = Anywhere
      organizationName = Test
organizationalUnitName = Dev
   stateOrProvinceName = CO
          emailAddress = info@test.com
                  name = Test Cert
               surname = Cert
             givenName = Test
              initials = TC

[ my server exts ]
      extendedKeyUsage = 1.3.6.1.5.5.7.3.2,1.3.6.1.4.1.311.20.2.2
        subjectAltName = otherName:1.3.18.0.2.4.318;UTF8:test@example.com

但我无法更正主题替代名称的格式以匹配上图中的示例。我在OpenSSL documentation 的主题备用名称下找不到“NT 主体名称”或“RFC 822 名称”的定义。当我在钥匙串访问中查看上述命令生成的证书时,我看到:

如何在我的客户端身份验证证书的主题备用名称下指定“NT 主体名称”和“RFC 822 名称”字段?

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
  • 你找到解决办法了吗?
  • 对于“RFC 822 名称”,我想我们应该使用subjectAltName = email:whatever@email.domain。也不确定“NT 主体名称”,但对于 UPN,我可以使用 otherName:1.3.6.1.4.1.311.20.2.3;UTF8:test@example.com,即使用不同的 OID 号。 (虽然这个问题很老,只是添加对我有用的东西,如果它可以帮助以后的人)

标签: ssl openssl


【解决方案1】:

我也被这个问题困扰了很久...... 我正在为 EFS 恢复代理生成证书,并且该字段主题备用名称在那里。 这里当然写了很多有趣的东西,可惜没有明确的例子:https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps

通过下载一个很棒的实用程序 XCA https://www.hohnstaedt.de/xca/

并通过查看生成的证书内容 cipher.exe /r: for EFS Recovery Agent

为 OpenSSL 生成了所需的字符串

openssl req -x509 -nodes -newkey rsa:4096 -keyout efs.key -out efs.cer -days 36500 -subj '/OU=EFS File Encryption Certificate/L=EFS/CN=efs' -addext 'extendedKeyUsage=1.3.6.1.4.1.311.10.3.4.1' -addext 'basicConstraints=CA:FALSE' -addext 'subjectAltName=otherName:msUPN;UTF8:sb@sb.local'

在这里您将了解如何插入“主体名称”和“主题备用名称”;)

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2013-06-06
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 2012-12-23
    • 2014-06-24
    • 1970-01-01
    相关资源
    最近更新 更多