我在嵌套子域和通配符openssl证书方面有一些问题。这可能是因为子域类型是: site1.parisgeo.cnrs.fr或site2.parisgeo.cnrs.fr,或其他子域(如xxxx.parisgeo.cnrs.fr )。
当我创建自签名证书时,我输入CN = *.parisgeo.cnrs.fr,但是似乎不可能在这个站点上连接--例如,使用这个配置的partage.parisgeo.cnrs.fr!阿格。
我的虚拟主机和我的apache2 conf 工作没有通配符,所以问题不在这里,我想:
The port.conf
NameVirtualHost *:443
Listen 443我有一个虚拟主机示例:
<VirtualHost *:443>
ServerName partage.parisgeo.cnrs.fr
ServerAlias www.partage.parisgeo.cnrs.Fr
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/parisgeo.cnrs.fr.crt
SSLCertificateKeyFile /etc/ssl/parisgeo.cnrs.fr.key
</VirtualHost>我生成这样的证书(CN = *.parisgeo.cnrs.fr):
openssl genrsa -des3 -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
openssl req -newkey rsa:1024 -nodes -keyout parisgeo.cnrs.fr.key -out parisgeo.cnrs.fr.csr
openssl x509 -req -days 3650 -in parisgeo.cnrs.fr.csr -CA ca.crt -CAcreateserial -CAkey ca.key -out parisgeo.cnrs.fr.crt生成密钥文件的权限:
-rw-r--r-- 1 root root 1424 14 déc. 11:51 ca.crt
-rw-r--r-- 1 root root 1743 14 déc. 11:50 ca.key
-rw-r--r-- 1 root root 17 14 déc. 12:13 ca.srl
-rw-r--r-- 1 root root 981 14 déc. 12:13 parisgeo.cnrs.fr.crt
-rw-r--r-- 1 root root 627 14 déc. 12:08 parisgeo.cnrs.fr.csr
-rw-r--r-- 1 root root 891 14 déc. 12:08 parisgeo.cnrs.fr.key当我尝试用openssl连接和测试证书时:
root@xxxx:/etc/ssl# openssl s_client -connect partage.parisgeo.cnrs.fr:443
CONNECTED(00000003)
depth=0 /C=FR/ST=IDF/L=PARIS/O=CNRS/CN=*.parisgeo.cnrs.fr
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=FR/ST=IDF/L=PARIS/O=CNRS/CN=*.parisgeo.cnrs.fr
verify return:1
---
Certificate chain
0 s:/C=FR/ST=IDF/L=PARIS/O=CNRS/CN=*.parisgeo.cnrs.fr
i:/C=FR/ST=IDF/L=PARIS/O=CNRS/CN=*.parisgeo.cnrs.fr
---
Server certificate
-----BEGIN CERTIFICATE-----
..... blabla .....
-----BEGIN CERTIFICATE-----
subject=/C=FR/ST=IDF/L=PARIS/O=CNRS/CN=*.parisgeo.cnrs.fr
issuer=/C=FR/ST=IDF/L=PARIS/O=CNRS/CN=*.parisgeo.cnrs.fr
---
No client certificate CA names sent
---
SSL handshake has read 1253 bytes and written 319 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 7642C70A1E358CAA5901C060A26655DE3AF0BA683C9A598BA7C4B14FF108ADD7
Session-ID-ctx:
Master-Key: 65184165198498498484 6516511321584831181468469431688132138498
Key-Arg : None
Start Time: 1323862629
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
closed当我试图连接到该站点时,firefox错误是:
An error occurred during a connection to partage.parisgeo.cnrs.fr.
Peer's certificate has an invalid signature.
(Error code: sec_error_bad_signature)如果你能帮我解决这个问题..。非常感谢!高级。
发布于 2015-10-22 12:49:48
我已经把指令放在要旨里了
定位您的openssl.conf
req_extensions = v3_req # The extensions to add to a certificate request
[ v3_req ]
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names
[alt_names] DNS.1 = yourdomain.com DNS.2 = *.yourdomain.com
运行以下命令:
openssl genrsa -des3 -out hostname.key 2048 openssl rsa -in hostname.key -out hostname-key.pem openssl req -new -key hostname-key.pem -out hostname-request.csr openssl x509 -req -extensions v3_req -days 365 -in hostname-request.csr -signkey hostname-key.pem -out hostname-cert.pem -extfile <path to openssl.conf>
https://stackoverflow.com/questions/8504277
复制相似问题