Arc*_*rci 10 java ssl https keytool
我创建了一个证书,并将CN设置为我的服务器的IP地址,格式为xxx.xxx.xxx.xxx.但是当我尝试在Java中运行我的代码时,我收到一条HTTPS hostname wrong: should be <xxx.xxx.xxx.xx>
错误消息.
可能有什么不对?我确定我正在连接到正确的IP地址.但是,我没有在证书上指定服务器的端口.在为CN提供价值时是否需要端口?但我正在使用https的默认端口8443.此外,我尝试将CN从服务器的IP地址更改为"localhost".它之后工作.我在想是否CN部分不接受IP地址作为值?
您能否解释CN如何工作以及它所需的值是多少?
谢谢!
Bru*_*uno 25
您需要在证书中添加的身份必须是您通过URL查找的身份.例如,如果您正在使用https://www.example.net
,您的证书必须有效www.example.net
; 如果你正在使用https://10.0.0.1/
,你的证书需要有效10.0.0.1
.
证书的主题DN中的公共名称RDN通常仅在以下情况下使用:(a)没有主题备用名称DNS条目,以及(b)它正在查找主机名,而不是IP地址.这在RFC 2818第3.1节中定义:
如果存在类型为dNSName的subjectAltName扩展名,则必须将其用作标识.否则,必须使用证书的Subject字段中的(最具体的)Common Name字段.尽管使用Common Name是现有做法,但不推荐使用它,并且鼓励证书颁发机构使用dNSName.
[...]
在某些情况下,URI被指定为IP地址而不是主机名.在这种情况下,iPAddress subjectAltName必须存在于证书中,并且必须与URI中的IP完全匹配.
在一般情况下,不建议(见中提到的问题在证书中使用的IP地址RFC 6125.但是,如果你真的需要,你需要与IP地址的证书是IP地址类型,它可以生成的SAN入门如本答案所述.
归档时间: |
|
查看次数: |
22984 次 |
最近记录: |