Apache配置https

apache配置https
一、yum 安装openssl和openssl-devel,httpd-devel

二、生成证书:
openssl genrsa -des3 1024  > /usr/local/apache/conf/server.key建立服务器密钥  
openssl rsa -in /usr/local/apache/conf/server.key > /usr/local/apache/conf/server2.key从密钥中删除密码(以避免系统启动后被询问口令)
mv /usr/local/apache/conf/server2.key  /usr/local/apache/conf/server.key
openssl req -new -key /usr/local/apache/conf/server.key -out /usr/local/apache/conf/server.csr建立服务器密钥请求文件
5>openssl x509 -in /usr/local/apache/conf/server.csr -out /usr/local/apache/conf/server.crt -req -signkey /usr/local/apache/conf/server.key -days 365建立服务器证书  

三、修改Apache的配置文件httpd.conf

打开ssl模块:
LoadModule ssl_module         modules/mod_ssl.so

引入ssl配置文件,增加支持ssl:
Include conf/extra/httpd-ssl.conf(去掉行首的注释)

启动重定向(可选),使用用户HTTP访问自动重定向为HTTPS,在httpd.conf文件尾加入如下内容:
<IfModule rewrite_module>

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
</IfModule>

四、修改加密文件httpd-ssl.conf,配置证书和密钥
SSLCertificateFile "/usr/local/apache/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache/conf/server.key"

五、重启Apache
/usr/local/apache/bin/apachectl -k restart
在浏览器输入https://域名,如果能正常访问,表示https已经配置成功。

启动apache 碰到下面问题:
Invalid command ‘SSLPassPhraseDialog‘, perhaps misspelled or defined by a module not included in the server configuration
到apache的bin 目录下面执行 ./httpd -l 看看有没有mode_ssl.c,这个错误说明ssl模块安装没有成功。
解决办法:
1、重新编译apache,加上--enable-ssl --with-ssl参数

2、把ssl模块加入到已经编译好的apache中
首先,使用 whereis openssl 命令获取lib和include的路径
[root@robot /usr/local/apache/modules]# whereis openssl
openssl: /usr/bin/openssl /usr/lib/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
然后 在apache 源码的modules/ssl文件夹下,使用命令/usr/sbin/apxs  -i -a  -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib/openssl/ -c *.c -lcrypto -lssl -ldl (apxs需要安装http-devel才有,虽然如此,我还是没有编译成功,于是就在其他已经编译了这个模块的机器上拷贝mod_ssl.so到apache模块目录/usr/local/apache/modules)


参照:http://blog.csdn.net/zilong00007/article/details/7285895

      http://blog.csdn.net/newjueqi/article/details/9855307


 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。