debian 下 openssl自建证书SSL+apache [fix CA bug]

来源:互联网 发布:乐期网络 编辑:程序博客网 时间:2024/05/17 22:48

 

本文的主要目的是如何使用openssl生成服务器和客户端证书,并使用apache来搭建https服务器,本文的内容主要来源于网上的其他的帖子,不过假如了一些修正:

例如:http://www.7880.com/Info/Article-62f7b180.html 和 https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/50333

 

1: 概念

        A: SSL所使用的证书可以是自己建的生成的,也可以通过一个商业性CA如Verisign 或 Thawte签署证书。

        B: 证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证.

             因此:在此环境中,至少必须有三个证书:即根证书,服务器证书,客户端证书,在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。

        C: 签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个CA.sh来签证书,而不是用MOD_ssl里的sign.sh来签。

 

2: 安装apache+openssl

3:   签证

      安装openssl后,在openssl下有一个CA.sh文件,就是利用此文件来签证, 来签三张证书,然后利用这三张证书来布SSL服务器。debian下CA.sh位于: /usr/lib/ssl/misc/CA.sh

     这里请修改 ssl的配置文件:/usr/lib/ssl/openssl.cnf, 将[ CA_default ] section 下x509_extensions = usr_crt 改为 x509_extensions = v3_ca,

      下面的步骤请根据 http://www.7880.com/Info/Article-62f7b180.html 来做。

 

      为什么要改动openssl的配置文件,请参考 https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/50333 。也就是说,如果不改,那么你从ie-Tools-Content-Certificates下查看你的客户端证书,会出现下面这个warning:

"This Certificate is not valid because one of the certification authorities in the certification path does not appear to be allowed to issue certificates or this certificate cannot be used as an end-entity certificate."

也无法连接到apache服务器。

 

好了,就这么多了,祝大家顺利

原创粉丝点击