我应该在SSL证书申请的通用名称中包含"www"吗?

Den*_*ail 7 ssl

我即将为一个小型网站购买SSL认证.最佳做法是输入"www.domainName.com"或"domainName.com"作为通用名称吗?

mpo*_*llo 8

确保使用该subjectAltName字段,并包括您要使用的主机名的所有变体,或者如果您不确定所有变体将是什么,请使用通配符.通用名称(CN)仅用作备份.有关更多详细信息,请参阅RFC 2818:

3.1.服务器身份

通常,通过解除引用URI来生成HTTP/TLS请求.因此,客户端知道服务器的主机名.如果主机名可用,客户端必须根据服务器的证书消息中显示的服务器身份进行检查,以防止中间人攻击.

如果客户端具有关于服务器的预期标识的外部信息,则可以省略主机名检查.(例如,客户端可能正在连接到一台机器,其地址和主机名是动态的,但客户端知道服务器将提供的证书.)在这种情况下,尽可能缩小可接受证书的范围非常重要.为了防止人在中间发作.在特殊情况下,客户端可能只是忽略服务器的身份,但必须明白,这会使连接对主动攻击开放.

如果存在类型为dNSName的subjectAltName扩展名,则必须将其用作标识.否则,必须使用证书的Subject字段中的(最具体的)Common Name字段.尽管使用Common Name是现有做法,但不推荐使用它,并且鼓励证书颁发机构使用dNSName.

使用[RFC2459]指定的匹配规则执行匹配.如果证书中存在多个给定类型的标识(例如,多个dNSName名称,则认为任何一个集合中的匹配都是可接受的.)名称可以包含通配符*,该通配符被认为与任何单个匹配域名组件或组件片段.例如,*.a.com匹配foo.a.com但不是bar.foo.a.com.f*.com匹配foo.com但不是bar.com.

在某些情况下,URI被指定为IP地址而不是主机名.在这种情况下,iPAddress subjectAltName必须存在于证书中,并且必须与URI中的IP完全匹配.

如果主机名与证书中的标识不匹配,则面向用户的客户端必须通知用户(客户端可以在任何情况下为用户提供继续连接的机会)或终止具有错误证书错误的连接.自动客户端必须将错误记录到适当的审核日志(如果可用),并且应该终止连接(证书错误).自动化客户端可以提供禁用此检查的配置设置,但必须提供启用它的设置.

请注意,在许多情况下,URI本身来自不受信任的来源.上述检查不提供针对此源受损的攻击的保护.例如,如果通过单击不使用HTTP/TLS获得的HTML页面获得URI,则中间的人可以替换URI.为了防止这种形式的攻击,用户应仔细检查服务器提供的证书,以确定它是否符合他们的期望.