首页 > 其他 > 详细

Openssl生成ssl证书和apache 多站点ssl配置

时间:2014-03-20 08:29:48      阅读:632      评论:0      收藏:0      [点我收藏+]

要实现一个Apache服务器上提供多个SSL虚拟主机,可以:

* 使用多域名SSL证书,可以实现一个IP,一个443端口上多个SSL虚拟主机;
* 一个ip,为所有SSL虚拟主机配置单独的端口。比如,默认的虚拟主机使用443,其他的使用8080或8081等,且每个SSL虚
  拟主机必须独占一个端口;(此种为我现在使用的)
* 为Apache服务器配置多个IP,每个SSL虚拟主机独占IP。如果只有一张物理网卡,可以配置为网卡配置子接口;
* 使用mod_gnutls模块,创建多个SSL虚拟主机 

 

一 自签名证书生成

x509证书一般会用到三类文,keycsrcrt

Key 是私用密钥openssl格,通常是rsa算法。

Csr 是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。

crtCA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。 

 

1.key的生成 

openssl genrsa -des3 -out server.key 2048 

这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:

openssl rsa -in server.key -out server.key 

 

server.key就是没有密码的版本了。 

 

2. 生成CAcrt

openssl req -new -x509 -key server.key -out ca.crt -days 3650 

生成的ca.crt文件是用来签署下面的server.csr文件。 

 

3. csr的生成方法

openssl req -new -key server.key -out server.csr  (可将该csr提交给签证机构,生成crt证书)

需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。 

 

4. crt生成方法

CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。

最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt

证书合并:

cat server.key server.crt > server.pem

 

二 apache 多站点配置ssl

1. Apache中同一IP多个HTTPS虚拟主机的实现

使用ip:prot形式

Listen 8443
NameVirtualHost 210.14.71.11:443
NameVirtualHost 210.14.71.11:8443

<VirtualHost 210.14.71.11:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /private/etc/apache2/ssl/server.crt
SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
SSLCertificateChainFile /private/etc/apache2/ssl/ca.crt
SSLCACertificateFile /private/etc/apache2/ssl/AddTrustExternalCARoot.crt
ServerName dl.domaina.com
DocumentRoot "/Volumes/RAID5/app/domaina/"
</VirtualHost>
<VirtualHost 210.14.71.11:8443>
SSLEngine on
DocumentRoot "/Library/WebServer/domainb/"
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /private/etc/apache2/ssl/love.crt
SSLCertificateKeyFile /private/etc/apache2/ssl/love.key
SSLCertificateChainFile /private/etc/apache2/ssl/loveca.crt
ServerName app.domainb.com
</VirtualHost>

 

2. Apache中一张网卡绑定不同IP实现多个HTTPS虚拟主机
一张网卡绑定多个ip,ifconfig eth0:0......
<VirtualHost 220.181.75.109:8443>
     ServerAdmin lala@corp.net.com
     DocumentRoot /home/lala/apache/htdocs/test
     ServerName a.test.com
     SSLEngine on
     SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
     SSLCertificateFile /home/lala/apache/conf/ssl.key/server.crt
     SSLCertificateKeyFile /home/lala/apache/conf/ssl.key/server.key
     #Include /home/lala/apache/conf/ssl.conf
     #ErrorLog logs/dummy-a.test.com-error_log
     #CustomLog logs/a.test.com-access_log common
</VirtualHost>

<VirtualHost 220.181.75.65:8443>
     ServerAdmin lala@corp.net.com
     DocumentRoot /home/lala/apache/htdocs/test2
     ServerName d.test.com
     SSLEngine on
     SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
     SSLCertificateFile /home/lala/apache/conf/ssl.key/server2.crt
     SSLCertificateKeyFile /home/lala/apache/conf/ssl.key/server2.key
     #Include /home/lala/apache/conf/ssl.conf
     #ErrorLog logs/dummy-a.test.com-error_log
     #CustomLog logs/a.test.com-access_log common
</VirtualHost>

Openssl生成ssl证书和apache 多站点ssl配置,布布扣,bubuko.com

Openssl生成ssl证书和apache 多站点ssl配置

原文:http://www.cnblogs.com/vjin/p/3610905.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!