把ssl模块加入到已经编译好的apache中实现HTTPS
为了使Apache支持https访问,系统需要安有apache、openssl、mod_ssl.so
1、安装openssl:
基本上系统都已经安装了,在/usr/bin/openssl下,直接使用openssl命令即可;如果系统未安装,则下载openssl进行安装。
2、安装mod_ssl.so:
现在Apache都自带了这个模块,默认是不安装的。安装方式有两种:静态编译和动态加载。
静态编译:即在编译安装apache的时候,在./configure的时候添加--enable--ssl,这样mod_ssl.so模块就加载进了Apache。(如果已经static编译过的模块,再次修改httpd.conf方式用loadmodule命令,在启动apache时会报"模块名" is built-in and can't be loaded.的错误。)
动态编译:无需重新编译apache,使用whereis openssl查找openssl路径,直接进入[source]/modules/ssl;执行[apache]/bin/apxs -a -i -c -L/usr/lib/openssl/engines/lib -c *.c -lcrypto -lssl -ldl;
如果执行上面的命令失败,请执行以下命令,验证成功
/usr/local/apache24/bin/apxs -a -i -DHAVE_OPENSSL=1 -I/usr/include/openssl -L/usr/lib64/openssl -c *.c -lcrypto -lssl -ldl
这种方式加载之后,在apache的安装目录下的modules目录会生成一个mod_ssl.so,同时httpd.conf中会增加一行LoadModule php5_module modules/libphp5.so([apache]表示Apache的安装目录,[source]表示Apache源码目录)
注:
apxs命令参数说明:
-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a 此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A 与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c 此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so
3、生成密钥和证书:
新建一个目录testCA或者直接进入Apache安装目录下的conf目录;
建立三个文件(不然为网站服务器签署证书的时候会报错):
mkdir newcerts
echo "01" > serial
touch index.txt
建立服务器密钥:
openssl genrsa -des3 1024 > server.key
从密钥中删除密码(以避免系统启动后被询问口令):
openssl rsa -in server.key > server2.key
替换文件:
mv server2.key server.key
建立服务器密钥请求文件:
openssl req -new -key server.key -out server.csr
建立服务器证书:
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
4、Apache添加SSL支持:
修改httpd.conf,去掉 Include conf/extra/httpd-ssl.conf 行首的“#”
5、修改httpd-ssl.conf:
修改端口Listen 443
(若生成的server.crt、server.key、server.csr等文件是在testCA目录下,还需要修改SSLCertificateFile等的路径)
6、重启Apache服务器:
7、输入https://网站进行验证,成功则表示已经支持ssl
把ssl模块加入到已经编译好的apache中实现HTTPS的更多相关文章
- apache中的https设置基于阿里云免费ssl服务
环境是:debian7+apache2.2+阿里云免费ssl服务,站点以前的http已经在运行了, 1.开通阿里云免费SSL&DNS解析配置 购买位置:打开阿里云找到“产品”-“安全”-“CA ...
- 编译安装带ssl 模块指定版本Python
出现这个或者fatal error: openssl/名单.h: No such file or directory.都是没有安装libssl-dev- libssl-dev包含libraries ...
- Python3编译安装ssl模块问题
本文以Centos系统为例 1.确保linux系统中安装了ssl-devel包 2.编译安装ssl模块到Python3中 1.查看linux系统中是否安装了ssl-devel包 # 查看命令 rpm ...
- python安装完毕后,提示找不到ssl模块的解决步骤
转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...
- nginx使用ssl模块配置支持HTTPS访问
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过htt ...
- nginx使用ssl模块配置HTTPS支持
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这 ...
- python安装完毕后,提示找不到ssl模块的解决方示
python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, 11:08:43) ...
- Windows下Apache添加SSL模块
参考资料:http://www.yuansir-web.com/2011/05/12/hello-world/测试环境:windows2003 32位 + Apache2.4 + PHP5.4 一.准 ...
- nginx使用ssl模块配置支持HTTPS访问【解决ssl错误】
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求:做一个网站域名为 www.localhost.cn 要求通过http ...
随机推荐
- Java(18) 集合框架
一.集合框架 Collectoin Map List set HashMap ArrayList LinkedList ...
- 将JSON转换成MAP的工具类
package com.xxxx.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.Inp ...
- Linux 技巧:让进程在后台可靠运行的几种方法【转】
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...
- java学习笔记05-运算符
算数运算符 +:相加 -:相减 *:相乘 /:相除 %:取余 ++:自增 --:自减 public static void main(String[] args) { int i = 10; int ...
- AI应用开发实战(转)
AI应用开发实战 - 从零开始配置环境 与本篇配套的视频教程请访问:https://www.bilibili.com/video/av24421492/ 建议和反馈,请发送到https://git ...
- SQLAlchemy 使用(二)表关联
前言 在上一章中我们介绍了 SQLAlchemy 建立基本表,但是一般情况下,表之间是有关联的,比如 一对一/一对多/多对多,当然 SQLAlchemy 是支持建立model时指定关系的 正文 多对一 ...
- node 创建
下载 node : 注意选项 ADD PATH 配置环境变量 node -v npm -v 检查创建一个服务器 : //创建一个服务器 127.0.0.1:8888 var http = requir ...
- jupyter4.4.0自定义目录
百度是有技巧的,现在百度的基本上都是2年前的帖子,对于最新的版本都不适用 对于jupyter自定义目录都是修改配置文件,这个对于jupyter4.4.0不适用: 1.在桌面创建jupyter-note ...
- 初学python之路-day10
基础部分先告一段落,今天开始学习函数. 一.函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 -- 现实中:很多问题要通过一些工具进行处理 => ...
- C语言中return 0和return 1和return -1
转载声明:本文系转载文章 原文作者:十一月zz 原文地址:https://blog.csdn.net/baidu_35679960/article/details/77542787 1.返回值int ...