基于mod_ssl模块实现httpd对ssl的支持

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于mod_ssl模块实现httpd对ssl的支持相关的知识,希望对你有一定的参考价值。

如果大家在浏览百度、或者Google时不难发现,这些网站都实现了全站https,https相对于http而言,由于增加的ssl隧道传输机制,安全性得到了极大的提升,所以全站https将是未来站点的趋势所在,而httpd默认是不支持https的,由于httpd有着强大的模块支持,这里我们通过httpd众多模块中的一个——mod_ssl来实现https。

我们都知道,http是基于文本协议来传输数据的,默认是使用tcp的80端口对外通信的,而https则不同,https基于二进制格式的协议传输,安全性得到了保证,默认使用tcp的443端口来通信。由于SSL会话是基于IP地址进行的,故而不支持在基于FQDN的虚拟主机上实现。

首先需要安装mod_ssl模块:

]# yum -y install mod_ssl

生成的文件:

]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf                       //配置文件,需要指明我们的证书所在位置,下面要用到
/etc/httpd/conf.modules.d/00-ssl.conf
/usr/lib64/httpd/modules/mod_ssl.so
/usr/libexec/httpd-ssl-pass-dialog
/var/cache/httpd/ssl

安装完成后需确保模块装载:

]# httpd -M
Loaded Modules:
...  \\此处省略
 ssl_module (shared)    //确保此模块已装载
...  \\此处省略

此时启动httpd服务:

] # systemctl start httpd

确保tcp的80和443端口已经监听:

技术分享

要想使用https,服务器需要证书(公钥和私钥),可以在/etc/pki/tls/certs/目录下执行make命令来创建测试证书:

创建私钥:

技术分享

为了私钥的安全性,要把私钥放在系统指定目录:

cp auth.key /etc/pki/CA/private/

创建证书:

技术分享

至此,供实验使用的证书文件已创建完毕,下面修改mod_ssl配置文件来知名我们的证书存放位置:

编辑配置文件:

]# vim /etc/httpd/conf.d/ssl.conf

并做修改如下:

技术分享

重启httpd服务:

技术分享

查看端口监听情况:

技术分享

把证书文件拷贝到测试主机上:

]# scp auth.crt [email protected]:~/Desktop/

技术分享

复制成功后,桌面有个文件auth.crt文件,双击导入系统:

技术分享

打开浏览器,输入网址,测试:

技术分享

至此,基于httpd的mod_ssl模块实现https就成功了。

本文出自 “始终上路过” 博客,转载请与作者联系!

以上是关于基于mod_ssl模块实现httpd对ssl的支持的主要内容,如果未能解决你的问题,请参考以下文章

无法将模块/mod_ssl.so 加载到服务器中

根据 URL 路径或 apache(mod_ssl) 中的特定服务设置 SSL/TLS 协议版本

安装 mod_ssl 会导致 httpd 出现分段错误

安装 mod_ssl 亚马逊 Linux

mod_ssl.so 没有加载

全栈https