客户端证书不绑定到特定的IP或域?

时间:2016-02-28 06:32:26

标签: ssl openssl ssl-certificate

如果我生成如下客户端证书

,则客户端证书有效
openssl req -config openssl.cnf -new -nodes -subj '/C=RO/ST=Bucharest/L=Bucharest/O=XXX/emailAddress=wdw@gmail.com/CN=192.1.61.7' -keyout private/client.key -out client.csr

192.1.61.7 是我的客户端的IP地址,它使用生成的客户端证书。

我希望客户端证书可以被来自任何IP地址的计算机使用。

我尝试了CN=*.*.*.*CN=*,但都没有效果。

服务器端是logstash tcp输入过滤器,我无法对其进行更改。

客户端证书必须绑定到特定的IP或域吗?如何生成不绑定到任何IP和域的客户端证书?

1 个答案:

答案 0 :(得分:0)

  

客户端证书必须绑定到特定的一个或多个域吗?

没有。但是如何处理事情取决于您正在运行的PKI。每个PKI都可以不同。

您可以识别具有传统Distinguished Name (DN) from RFC 4511的用户,例如组织(O)和组织单位(OU)。或者您可以使用其他名称识别它们。

以下是通过备用名称识别主题的方法。来自RFC 5280, Section 4.2.1.6, Subject Alternative Name

GeneralName ::= CHOICE {
    otherName                       [0]     OtherName,
    rfc822Name                      [1]     IA5String,
    dNSName                         [2]     IA5String,
    x400Address                     [3]     ORAddress,
    directoryName                   [4]     Name,
    ediPartyName                    [5]     EDIPartyName,
    uniformResourceIdentifier       [6]     IA5String,
    iPAddress                       [7]     OCTET STRING,
    registeredID                    [8]     OBJECT IDENTIFIER }

在上面,您习惯使用dNSName作为服务器证书。客户端证书可以使用rfc822NamedirectoryNameotherName和其他GeneralName。

您使用的内容取决于您的PKI。我相信Microsoft客户端证书使用otherName和自定义OID。另请参阅信息安全堆栈交换中的How to encode a username in PKIX certificate

您可能还想搜索Client Certificate GeneralName并进行阅读。

  

如何生成不绑定到任何IP和域的客户端证书?

这取决于您使用的工具和PKI。

至少,您可能不得不在没有CONF文件的情况下停止使用openssl命令行工具,因为它太有限了。您无法通过命令行选项设置主题备用名称。相反,您将不得不使用CONF文件。