首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套子域的OpenSSL和apache2通配符自签名证书

嵌套子域的OpenSSL和apache2通配符自签名证书
EN

Stack Overflow用户
提问于 2011-12-14 12:14:21
回答 1查看 2.8K关注 0票数 4

我在嵌套子域和通配符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

代码语言:javascript
复制
 NameVirtualHost *:443
 Listen 443

我有一个虚拟主机示例:

代码语言:javascript
复制
<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):

代码语言:javascript
复制
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

生成密钥文件的权限:

代码语言:javascript
复制
-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连接和测试证书时:

代码语言:javascript
复制
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错误是:

代码语言:javascript
复制
An error occurred during a connection to partage.parisgeo.cnrs.fr.
Peer's certificate has an invalid signature.
(Error code: sec_error_bad_signature)

如果你能帮我解决这个问题..。非常感谢!高级。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 12:49:48

我已经把指令放在要旨里了

定位您的openssl.conf

  1. 取消注释req_extensions = v3_req

req_extensions = v3_req # The extensions to add to a certificate request

  1. 将subjectAltName添加到v3_req部分

[ v3_req ]

basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names

  1. 最后,添加您希望此证书有效的备用名称。

[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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8504277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档