为了使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的更多相关文章

  1. apache中的https设置基于阿里云免费ssl服务

    环境是:debian7+apache2.2+阿里云免费ssl服务,站点以前的http已经在运行了, 1.开通阿里云免费SSL&DNS解析配置 购买位置:打开阿里云找到“产品”-“安全”-“CA ...

  2. 编译安装带ssl 模块指定版本Python

      出现这个或者fatal error: openssl/名单.h: No such file or directory.都是没有安装libssl-dev- libssl-dev包含libraries ...

  3. Python3编译安装ssl模块问题

    本文以Centos系统为例 1.确保linux系统中安装了ssl-devel包 2.编译安装ssl模块到Python3中 1.查看linux系统中是否安装了ssl-devel包 # 查看命令 rpm ...

  4. python安装完毕后,提示找不到ssl模块的解决步骤

    转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...

  5. nginx使用ssl模块配置支持HTTPS访问

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过htt ...

  6. nginx使用ssl模块配置HTTPS支持

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这 ...

  7. python安装完毕后,提示找不到ssl模块的解决方示

    python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, 11:08:43) ...

  8. Windows下Apache添加SSL模块

    参考资料:http://www.yuansir-web.com/2011/05/12/hello-world/测试环境:windows2003 32位 + Apache2.4 + PHP5.4 一.准 ...

  9. nginx使用ssl模块配置支持HTTPS访问【解决ssl错误】

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求:做一个网站域名为 www.localhost.cn 要求通过http ...

随机推荐

  1. SHELL:多文件的重命名和移动

    rename find mv #实现查找png 和 jpeg文件 #!/bin/bash #file name: rename.sh #use: rename.jpg  and .png files ...

  2. vue+element 正则表达式进行表单验证

    <template> <el-form :model="form" label-width="115px" ref="form&qu ...

  3. XGBoost参数调优完全指南

    简介 如果你的预测模型表现得有些不尽如人意,那就用XGBoost吧.XGBoost算法现在已经成为很多数据工程师的重要武器.它是一种十分精致的算法,可以处理各种不规则的数据.构造一个使用XGBoost ...

  4. Swift PlayGround无限Running问题

    这个问题我想肯定很多人都有遇到过,如果你正好面试iOS,用这个playground写算法的话遇到这种情况只能hehe了-- 我是这样解决的,一开始我build project的时候选得是iOS的pla ...

  5. html-webpack-plugin详解

    引言 我们来看看主要作用: 为html文件中引入的外部资源如script.link动态添加每次compile后的hash,防止引用缓存的外部文件问题 可以生成创建html入口文件,比如单页面可以生成一 ...

  6. 在NOARCHIVELOG和ARCHIVELOG模式之间选择

    本节介绍在选择以NOARCHIVELOG或ARCHIVELOG模式运行数据库时必须考虑的问题,并包含以下主题: 在NOARCHIVELOG模式下运行数据库 在ARCHIVELOG模式下运行数据库 是否 ...

  7. Sublime Text 3删除插件

    Ctrl+Shift+P调出命令窗口,输入remove: 选择第二个Remove Package,会看到如下界面: 里面列出了你已经安装的插件,之后选择你想要卸载的就好了.

  8. ftp和mysql数据库结合使用

    问题描述: 看下 1.1.1.1 的ftp为什么连不上 报错的信息: 'ftpServer' => '1.1.1.1', // FTP服务器地址 ', 'ftpUsername' => ' ...

  9. patch 28729262

    打补丁最后出个error OPatch found the word "error" in the stderr of the make command.Please look a ...

  10. ASP.NET 异步返回的Action (编辑中。。。)

    新学.net,最近用到了ABP框架,发现了如下代码: public override async Task<UserDto> Get(EntityDto<long> input ...