Apache+https

来源:互联网 发布:ubuntu安装qq2017 编辑:程序博客网 时间:2024/06/18 18:53
Apache+Tomcat,需要使用https访问,只需https加密访问Apache。
在下载Apache时,需下载带openssl的版本。
具体开启Apache的https过程如下:
修改配置文件
1.修改httpd.conf文件
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
去掉上面两行前的"#"
2.修改conf/extra/httpd-ssl.conf
SSLCertificateFile "D:/Apache24/bin/server.crt"
SSLCertificateKeyFile "D:/Apache24/bin/server.key"
路径可以自己修改
在ServerAdmin前加入一行
JkMount /* controller
表示所有请求都交给负载均衡控制器,controller要和workers.properties中负载均衡控制器名字相同
3.修改为你生成证书的文件位置
DocumentRoot "E:/www" 
修改DocumentRoot的值与httpd.conf文件的DocumentRoot保持一致.
4.把httpd-ssl.conf文件中所有的apache的路径替换为你的Apache的路径
配置文件修改完成。

生成证书
1.命令行中进入apache/bin目录下执行如下:
openssl req -config D:/Apache24/conf/openssl.cnf -new -outserver.csr -keyout server.pem
其中openssl.cnf为apache自带的openssl配置文件,引用到该文件的完整路径
输入两次密码,然后提示输入证书的相关信息,Common Name为ip或域名,其余的随便。
如果提示无法打开openssl.cnf,则先设环境变量
set OPENSSL_CONF=openssl.cnf 
#签发证书
openssl rsa -in server.pem -out server.key
输入刚才制定的密码
#生成密钥文件
openssl x509 -in server.csr -out server.crt -req -signkeyserver.key -days 365
#生成证书文件
365表示证书有效期,单位为天
把  server.key,server.crt copy到conf文件夹下

重启Apache服务,即可使用https访问Apache。

如果Apache启动出现异常,提示AH00526错误:

AH00526: Syntax error on line 76 of/usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names:). Maybe you need to load the appropriate socache module(mod_socache_shmcb?).

解决办法:

conf\httpd.conf文件中,

找到LoadModule socache_shmcb_modulemodules/mod_socache_shmcb.so,

去掉这一行前面的注释"#",问题解决。

原创粉丝点击