在Tomcat下配置数字证书,搭建SSL模块,构建HTTPS平台固然必要,但是如果有多个Tomcat需要共享HTTPS服务,并需要负载均衡,这个安全加固的工作还是让Apache代劳更为合适!
相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + SVN + LDAP
征服 Apache + Tomcat
征服 Nginx
征服 Nginx + Tomcat
动手,在Ubuntu上做Apache+SSL!
步骤
- 安装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
追加如下内容:
引用
127.0.0.1 www.zlex.org
然后,我们需要修改证书路径,指向刚才生成证书:
sudo vi /etc/apache2/sites-available/default-ssl
找到
SSLCertificateFile和
SSLCertificateKeyFile,修改指向刚才生成的证书和密钥库:
然后,重启apache:
sudo /etc/init.d/apache2 restart
访问
https://www.zlex.org,
点击添加例外:
然后看到如下内容:
现在再看看浏览器标识:
点开看看:
我们可以点击查看证书,看看庐山真面目:
这里用的是自签名证书,所以无法验证!
好了,这样就可以完成简单Apache+SSL平台搭建了,当然,这仅仅是基于单向认证服务!
更多细节如下图红框标注,建立证书链,双向认证服务,验证深度等等:
命令
sudo vi /etc/apache2/sites-available/default-ssl
相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + SVN + LDAP
征服 Apache + Tomcat
征服 Nginx
征服 Nginx + Tomcat