原文转自 http://snowolf.iteye.com/blog/739475
在Tomcat下配置数字证书,搭建SSL模块,构建HTTPS平台固然必要,但是如果有多个Tomcat需要共享HTTPS服务,并需要负载均衡,这个安全加固的工作还是让Apache代劳更为合适!
相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + Tomcat
动手,在Ubuntu上做Apache+SSL!
步骤
1.安装Apache
这里系统选用Ubuntu Server 10.04版本,Apache选用2.2.14,OpenSSL选用0.98k。
安装Apache2
sudo apt-get install apache2
这个就不用解释了,不明白可以查Ubuntu/Debian技术手册。
2.安装SSL模块
Ubuntu版Apache提供了两个命令用于配置SSL站点、模块:
sudo a2ensite default-ssl
这个命令建立了基本ssl站点配置
也就是构建了文件/etc/apache2/sites-available/default-ssl 。
我们稍后需要修改这个文件,添加自己的证书!
sudo a2enmod ssl
这个命令用于配置SSL模块,完成操作后,可以在/etc/ssl 中,发现一些目录、文件。并且/etc/ssl/private 目录仅限root帐户才能查看 !
完成上述操作后一定要重新启动Apache!
sudo /etc/init.d/apache2 restart
详细内容参考/usr/share/doc/apache2.2-common/README.Debian.gz
其实,这个时候你可以访问https://localhost ,查看配置是否生效。如果你打开浏览器会提示你证书(localhost)未验证!
3.生成证书
这里我们需要通过OpenSSL生成证书,如果还没有OpenSSL,那就下载安装:
sudo apt-get install openssl
然后,我们切换到/etc/ssl 路径下,构建自签名证书:
sudo openssl req -x509 -newkey rsa:1024 -keyout private/zlex.key -out certs/zlex.pem -nodes -days 3650 -subj "/C=CN/ST=BJ/L=BJ/O=zlex/OU=zlex/CN=www.zlex.org"
req 请求证书
-x509 签发X.509格式证书
-newkey rsa:1024 非对称加密算法为RSA,密钥长度为1024bits
-keyout private/zlex.key 私钥输出到private中,名为zlex.key
-out certs/zlex.pem 密钥库输出至certs中,名为zlex.pem
-nodes 显示详情
-days 3650 有效期时间,为3650天
-subj "/C=CN/ST=BJ/L=BJ/O=zlex/OU=zlex/CN=www.zlex.org" 证书主题,注意CN指向主机域名,这里为‘www.zlex.org’
再看看certs和private里原始的证书、密钥库,以及我们刚刚生成的证书密钥库。
4.配置生效
由于这里使用www.zlex.org,这就需要通过修改/etc/hosts ,让系统绑定www.zlex.org到本机:
sudo /etc/hosts
追加如下内容:
然后,我们需要修改证书路径,指向刚才生成证书:
sudo vi /etc/apache2/sites-available/default-ssl
找到SSLCertificateFile 和SSLCertificateKeyFile ,修改指向刚才生成的证书和密钥库:
然后,重启apache:
sudo /etc/init.d/apache2 restart
访问https://www.zlex.org ,
点击添加例外:
然后看到如下内容:
现在再看看浏览器标识:
点开看看:
我们可以点击查看证书,看看庐山真面目:
这里用的是自签名证书,所以无法验证!
好了,这样就可以完成简单Apache+SSL平台搭建了,当然,这仅仅是基于单向认证服务!
更多细节如下图红框标注,建立证书链,双向认证服务,验证深度等等:
命令