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模块,没有这个模块就需要安装依赖包: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 on
RewriteCond %{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.so
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:!RC4:<VirtualHost _default_:443>     # 必须有一个虚拟主机,这样才可以使用跳转功能和使用443端口访问
DocumentRoot "/home/store/webroot"
Servername https://xxx.com/
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLCertificateFile /etc/httpd/conf/cert/xxx.com.crt
SSLCertificateKeyFile /etc/httpd/conf/cert/xxx.com.key
</VirtualHost>
五、重启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 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)

转载于:https://www.cnblogs.com/liaojiafa/p/6028816.html

Apache配置HTTPS功能相关推荐

  1. 【微信小程序】 apache配置https,nginx配置https

    1,简介 最近在做一个微信小程序的项目,把我搞得焦头烂额,微信小程序默认必须使用https加密请求,现在配置好了,所以记录一下,如果你也遇到疑惑,希望下面的文章可以帮到你~~! 2,配置https必须 ...

  2. phpstudy apache配置https

    打开Apache的httpd.conf文件, #LoadModule ssl_module modules/mod_ssl.so ,去掉该行前面的"#"符号 2.在Apache的配 ...

  3. Apache 配置HTTPS协议搭载SSL配置

    在设置Apache + SSL之前, 需要做: 安装Apache, 请参见: Windows环境下Apache的安装与虚拟目录的配置, 下载安装Apache时请下载带有ssl版本的Apache安装程序 ...

  4. apache配置https,并且强制使用HTTPS

    长话短说. 1.搭建一个本地PHP开发环境,我用的是UPUPW集成包,大家可以自行下载 2.HTTPS要有证书才行,这里用自己生成证书的方法在本地测试使用,不要去申请免费的,这里不是上公网 3.生成所 ...

  5. Wamp apache 配置 Https 双向 认证 全过程

    1.我安装的是Wampserver 2.2.11,  d:\wamp目录 2.本机操作系统Win7 32位 3.D:\wamp\bin\apache\Apache2.2.11\bin  下有  ope ...

  6. ubuntu的apache配置https

     一.配置Apache 1.开启SSL模块 a2enmod ssl 2.启用SSL站点 a2ensite default-ssl 3.加入监听端口 vi /etc/apache2/ports.co ...

  7. Apache配置https全过程

    by amxku on 2007-09-20, 14:02. 技术相关 | TECH writer: demonalex[at]163[dot]com 实验环境: FreeBSD server5.de ...

  8. 【SSL】【Apache】 使用向导配置 https/ssl

    前言 Apache 2.4.39 phpStudy 8.1.1.2 tomcat 8.0 的项目 准备 在 httpd.conf 配置文件中加载 Http 反向代理用到的模块 LoadModule p ...

  9. 【SSL】【Apache】 配置 https/ssl

    前言 Apache 2.4.39 phpStudy 8.1.1.2 tomcat 8.0 的项目 windows server 2003 准备 在 httpd.conf 配置文件中加载 Http 反向 ...

最新文章

  1. echarts与TmodJS的冲突 -- 模块化加载器之间的冲突
  2. 详解在group by分组查询中where 和 having的用法和区别。
  3. python init函数_在Python中解释类__init __()函数内部和外部的变量。
  4. 黑苹果找不到触控板_苹果高管告诉你为何要添加触控板功能
  5. xamarin.android 图片高斯模糊效果
  6. php装逼的面试问题,面试读心术,教你如何优雅的在面试官前装逼
  7. ctx->cvdl->cuvidGetDecoderCaps(ctx->caps8) failed -> CUDA_ERROR_DEINITIALIZED: driver shutting down
  8. 计算机主板平面图,电脑主板图纸
  9. js获取浏览器高度和宽度值
  10. 解决谷歌浏览器添加插件时显示程序包无效:CRX_HEADER_INVALID
  11. 程序员过了 35 岁还能干嘛?这是我听过最棒的建议!
  12. 为Dragonfly配置私有仓库
  13. 浅谈区块链技术应用场景
  14. wfa 认证 android 必须,我看到有个WFA行动学习促动师的认证,有谁了解这个认证的,介绍一下怎么可以通过认证,通过率高吗?...
  15. [ 云原生之谜 ] 云原生背景 定义 相关技术详解?
  16. GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis
  17. 最新手机号码检验正则表达式
  18. pip install kaggle 出现 【网络不可达】?
  19. matlab素描算法实现
  20. 前端面试笔记-CSS篇

热门文章

  1. 循环类里面的每一个属性
  2. Silverlight实用窍门系列:51.Silverlight页面控件的放大缩小、Silverlight和Html控件的互相操作...
  3. 请大家说一说:有没有必要针对VSS备份过程,做成一个开源小工具?
  4. Springboot版本+ Spring Framework版本 + jdk版本 + Maven版本
  5. superset可视化-桑基图(sankey diagram)
  6. best single model of RSNA
  7. python:else与循环语句联合用法
  8. 深度学习(二十九)——Normalization进阶, CTC
  9. TypeScript 发布 3.4 首个 RC 预览版
  10. 58.配置tomcat监听80 虚拟主机 日志