52037317 发表于 2017-1-1 09:50:47

征服 Apache + SSL (转)

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





相关内容:

征服 Apache + SSL

征服 Apache + SVN

征服 Apache + Tomcat





动手,在Ubuntu上做Apache+SSL!



步骤


[*]安装Apache
[*]安装SSL模块
[*]生成证书
[*]配置生效
  

1.安装Apache



这里系统选用Ubuntu Server 10.04版本,Apache选用2.2.14,OpenSSL选用0.98k。


安装Apache2

Shell代码





[*]
sudo apt-get install apache2   




sudo apt-get install apache2
  


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


2.安装SSL模块



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

Shell代码





[*]
sudo a2ensite default-ssl   




sudo a2ensite default-ssl
  


这个命令建立了基本ssl站点配置


也就是构建了文件/etc/apache2/sites-available/default-ssl



我们稍后需要修改这个文件,添加自己的证书!

Shell代码





[*]
sudo a2enmod ssl  




sudo a2enmod ssl
  


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




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


Shell代码





[*]
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代码





[*]
sudo apt-get install openssl  




sudo apt-get install openssl
  


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

Shell代码





[*]
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代码





[*]
sudo /etc/hosts  




sudo /etc/hosts
  


追加如下内容:

引用

127.0.0.1       www.zlex.org
  


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

Shell代码





[*]
sudo vi /etc/apache2/sites-available/default-ssl  




sudo vi /etc/apache2/sites-available/default-ssl
  


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



然后,重启apache:

Shell代码





[*]
sudo /etc/init.d/apache2 restart  




sudo /etc/init.d/apache2 restart
  


访问https://www.zlex.org




点击添加例外:



然后看到如下内容:



现在再看看浏览器标识:



点开看看:



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



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


好了,这样就可以完成简单Apache+SSL平台搭建了,当然,这仅仅是基于单向认证服务!

更多细节如下图红框标注,建立证书链,双向认证服务,验证深度等等:



命令

Shell代码





[*]
sudo vi /etc/apache2/sites-available/default-ssl 


页: [1]
查看完整版本: 征服 Apache + SSL (转)