分享

征服 Apache SSL

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



相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + SVN +  LDAP
征服 Apache + Tomcat
征服 Nginx
征服 Nginx + 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   

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

2.安装SSL模块
Ubuntu版Apache提供了两个命令用于配置SSL站点、模块:
Shell代码  收藏代码
  1. sudo a2ensite default-ssl   

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

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


完成上述操作后一定要重新启动Apache!
Shell代码  收藏代码
  1. 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  

然后,我们切换到/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."  

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."证书主题,注意CN指向主机域名,这里为‘www.’

再看看certs和private里原始的证书、密钥库,以及我们刚刚生成的证书密钥库。




4.配置生效
由于这里使用www.,这就需要通过修改/etc/hosts,让系统绑定www.到本机:
Shell代码  收藏代码
  1. sudo /etc/hosts  

追加如下内容:
引用
127.0.0.1       www.

然后,我们需要修改证书路径,指向刚才生成证书:
Shell代码  收藏代码
  1. sudo vi /etc/apache2/sites-available/default-ssl  

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

然后,重启apache:
Shell代码  收藏代码
  1. sudo /etc/init.d/apache2 restart  

访问https://www.

点击添加例外:

然后看到如下内容:

现在再看看浏览器标识:

点开看看:

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

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

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

命令
Shell代码  收藏代码
  1. sudo vi /etc/apache2/sites-available/default-ssl  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多