`

征服 Apache + SSL (转)

阅读更多

原文转自 http://snowolf.iteye.com/blog/739475

 

在Tomcat下配置数字证书,搭建SSL模块,构建HTTPS平台固然必要,但是如果有多个Tomcat需要共享HTTPS服务,并需要负载均衡,这个安全加固的工作还是让Apache代劳更为合适!


相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + Tomcat


动手,在Ubuntu上做Apache+SSL!

步骤

  1. 安装Apache
  2. 安装SSL模块
  3. 生成证书
  4. 配置生效


1.安装Apache
这里系统选用Ubuntu Server 10.04版本,Apache选用2.2.14,OpenSSL选用0.98k。
安装Apache2

Shell代码
  1. sudo apt-get install apache2   
sudo apt-get install apache2 


这个就不用解释了,不明白可以查Ubuntu/Debian技术手册。

2.安装SSL模块
Ubuntu版Apache提供了两个命令用于配置SSL站点、模块:

Shell代码
  1. sudo a2ensite default-ssl   
sudo a2ensite default-ssl 


这个命令建立了基本ssl站点配置
也就是构建了文件/etc/apache2/sites-available/default-ssl
我们稍后需要修改这个文件,添加自己的证书!

Shell代码
  1. sudo a2enmod ssl  
sudo a2enmod ssl


这个命令用于配置SSL模块,完成操作后,可以在/etc/ssl 中,发现一些目录、文件。并且/etc/ssl/private 目录仅限root帐户才能查看


完成上述操作后一定要重新启动Apache!

Shell代码
  1. sudo /etc/init.d/apache2 restart  
sudo /etc/init.d/apache2 restart



详细内容参考/usr/share/doc/apache2.2-common/README.Debian.gz

其实,这个时候你可以访问https://localhost ,查看配置是否生效。如果你打开浏览器会提示你证书(localhost)未验证!

3.生成证书
这里我们需要通过OpenSSL生成证书,如果还没有OpenSSL,那就下载安装:

Shell代码
  1. sudo apt-get install openssl  
sudo apt-get install openssl


然后,我们切换到/etc/ssl 路径下,构建自签名证书:

Shell代码
  1. 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"   
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到本机:

Shell代码
  1. sudo /etc/hosts  
sudo /etc/hosts


追加如下内容:

引用
127.0.0.1       www.zlex.org


然后,我们需要修改证书路径,指向刚才生成证书:

Shell代码
  1. sudo vi /etc/apache2/sites-available/default-ssl  
sudo vi /etc/apache2/sites-available/default-ssl


找到SSLCertificateFileSSLCertificateKeyFile ,修改指向刚才生成的证书和密钥库:

然后,重启apache:

Shell代码
  1. sudo /etc/init.d/apache2 restart  
sudo /etc/init.d/apache2 restart


访问https://www.zlex.org

点击添加例外:

然后看到如下内容:

现在再看看浏览器标识:

点开看看:

我们可以点击查看证书,看看庐山真面目:

这里用的是自签名证书,所以无法验证!

好了,这样就可以完成简单Apache+SSL平台搭建了,当然,这仅仅是基于单向认证服务!
更多细节如下图红框标注,建立证书链,双向认证服务,验证深度等等:

命令

Shell代码
  1. sudo vi /etc/apache2/sites-available/default-ssl 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics