博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache配置HTTPS功能
阅读量:6092 次
发布时间:2019-06-20

本文共 2605 字,大约阅读时间需要 8 分钟。

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.keymv /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.csr5>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模块,没有这个模块就需要安装依赖包:mod_ssl,安装后就会在modules里面找到:

LoadModule ssl_module         modules/mod_ssl.so

引入ssl配置文件,增加支持ssl:

Include conf/extra/httpd-ssl.conf(去掉行首的注释)
  • 启动重定向(可选),使用用户HTTP访问自动重定向为HTTPS,直接在http.conf最后配置即可,在httpd.conf文件尾加入如下内容:
RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
四、修改加密文件ssl.conf,通过yum安装好的httpd,在conf.d目录下面有ssl.conf配置文件,我们需要在里面配置一个VirtualHost和配置证书和密钥:
LoadModule ssl_module modules/mod_ssl.soListen 443SSLPassPhraseDialog  builtinSSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)SSLSessionCacheTimeout  300SSLMutex defaultSSLRandomSeed startup file:/dev/urandom  256SSLRandomSeed connect builtinSSLCryptoDevice builtinSSLProtocol all -SSLv2 -SSLv3SSLHonorCipherOrder onSSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:!RC4:
# 必须有一个虚拟主机,这样才可以使用跳转功能和使用443端口访问DocumentRoot "/home/store/webroot"Servername https://xxx.com/ErrorLog logs/ssl_error_logTransferLog logs/ssl_access_logLogLevel warnSSLEngine onSSLCertificateFile /etc/httpd/conf/cert/xxx.com.crtSSLCertificateKeyFile /etc/httpd/conf/cert/xxx.com.key
五、重启Apache

service httpd restart

  1. 在浏览器输入https://域名 或者 域名:443,如果两个能正常访问,表示https已经配置成功。
  2. 在浏览器输入 域名,如果能够正常跳转到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 opensslopenssl: /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://wdmwa.baihongyu.com/

你可能感兴趣的文章
Python urllib的urlretrieve()函数解析
查看>>
(FortiGate)飞塔防火墙BYOD网络安全解决方案
查看>>
Mysql 常用函数的 总结 (转)
查看>>
bootstrap select2 用法总结 输入选择框
查看>>
报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost...
查看>>
[李景山php]每天TP5-20170116|thinkphp5-Url.php-1
查看>>
php常见错误总结
查看>>
vim --Filter commands
查看>>
[Unity3d插件KGFMapSystem]非常不错的小地图的制作
查看>>
jdk与jre的区别
查看>>
弹出菜单
查看>>
高德地图多marker聚合API
查看>>
IPv4 向 IPv6 过渡安全问题不可小觑
查看>>
Linux运维实战之Apache服务器的高级配置(虚拟主机、status)
查看>>
DHCP overview
查看>>
我的友情链接
查看>>
linux 系统无法启动的基本解决方法
查看>>
老男孩博客园杨海潮MySQL--MySQL机构逻辑1
查看>>
Linux network adapter configuration
查看>>
决心书
查看>>