我有一些封闭的应用程序作为HTTP服务器使用SSL。我想交换证书,但由于某种原因,我的自签名证书被拒绝,服务器没有发送服务器问候(我得到104错误)。有谁知道它们之间的区别是什么,问题可能是什么?顺便说一句。也有一些CA,但我认为这无关紧要,因为如果没有它们,服务器也会返回它的证书。我尝试使用以下命令生成我的证书:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 360
我的证书:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
e7:ee:93:5d:78:65:56:ad
Signature Algorithm: sha1WithRSAEncryption
Issuer: O=(...), CN=(...)
Validity
Not Before: Apr 23 17:58:29 2014 GMT
Not After : Apr 18 17:58:29 2015 GMT
Subject: O=(...), CN=(...)
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
(...)
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
31:CD:5A:41:C0:64:DD:C4:96:30:AB:E2:99:9F:2D:40
X509v3 Authority Key Identifier:
keyid:31:CD:5A:41:C0:64:DD:C4:96:30:AB:E2:99:9F
1
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: sha1WithRSAEncryption
(...)
-----BEGIN CERTIFICATE-----
(...)
-----END CERTIFICATE-----原始证书:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1284084212 (0x4c8991f4)
Signature Algorithm: sha256WithRSAEncryption
Issuer: O=(...), CN=(...)
Validity
Not Before: Apr 23 17:58:29 2014 GMT
Not After : Apr 18 17:58:29 2015 GMT
Subject: CN=(...).com, O=(...)
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
(...)
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Certificate Policies:
Policy: (...)
X509v3 Subject Alternative Name:
DNS:(...).com
X509v3 Authority Key Identifier:
keyid:(...)
X509v3 Subject Key Identifier:
(...)
Signature Algorithm: sha256WithRSAEncryption
(...)
-----BEGIN CERTIFICATE-----
(...)
-----END CERTIFICATE-----发布于 2014-04-24 03:09:50
如果我理解ssl是如何工作的,这里发生的事情是:以前你有一个服务器,它的证书是由某个权威机构签署的,你的浏览器信任它。即使当你尝试使用https://...访问服务器上的url时,它也没有互联网连接,浏览器会检查服务器的证书,嘿,它是用ca签名的,这是我信任的,所以我们可以继续了。但情况不再是这样了。如何让您的客户端信任自签名证书取决于客户端是谁:浏览器、移动应用程序等等。如果是浏览器,请检查其设置。注意:服务器没有internet连接的事实并不意味着证书是由某个本地CA签名的,因为一些默认的全局信任CA的列表是在浏览器的设置中预先配置的。
发布于 2014-04-24 03:18:49
以下扩展是必需的,但似乎缺少:
此外,CN应与主机名匹配(或主题备用名称与主机名匹配)。当然,因为证书是自签名的,所以您必须显式地向客户端添加信任。
https://stackoverflow.com/questions/23252582
复制相似问题