搭建Apache服务器并使用自签证书实现https访问
2018-05-29 16:26
459 查看
实验环境:两台Centos7.2的虚拟机,一台作CA服务器,一台作Apache服务器,此处安装httpd-2.4.6的版本.
1)CA服务器
# 私钥一般存放位置:/etc/pki/CA/private [root@happiness ~]# cd /etc/pki/CA/private # 生成私钥 [root@happiness private]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) # 生成自签证书,有效期365天 [root@happiness private]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 -new:生成新证书签署请求; -x509:生成自签格式证书,专用于创建私有CA时使用; -key:生成请求时用到的私有文件路径; -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书; -days:证书的有效时长,单位是day
# 为CA提供所需的文件 [root@happiness CA]# touch /etc/pki/CA/{serial,index.txt [root@happiness CA]# echo 01 > /etc/pki/CA/serial
2)Apache服务器
Centos7.2已经默认安装好httpd-2.4.6和openssl,如果没有安装可以配置好yum源进行安装。
[root@happiness ~]# mkdir /etc/httpd/ssl [root@happiness ~]# cd /etc/httpd/ssl # 生成私钥 [root@happiness ssl]# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) # 生成证书签署请求 [root@happiness ssl]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
注意:此处生成请求时填写的信息,需要跟CA生成证书时的信息保持一致。 # 把证书请求发给CA服务器 [root@happiness ssl]# scp httpd.csr root@192.168.4.119:/tmp/
3)CA服务器
# 签署证书 [root@happiness ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365 # 传输给Apache服务器 [root@happiness ~]# spc /etc/pki/CA/certs/httpd.crt root@192.168.4.50:/etc/httpd/ssl/
4)Apache服务器
# httpd-2.4.6默认没安装ssl模块,自行安装 [root@happiness ~]# yum install mod_ssl -y # 安装后生成的文件信息 [root@happiness ~]# 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 # 编辑ssl配置文件 [root@happiness ~]# vim /etc/httpd/conf.d/ssl.conf
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/26/b4c870dbdc2c2fc011c139d59648b50d.png)
# 编辑httpd配置文件 [root@happiness ~]# vim /etc/httpd/conf/httpd.conf
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/26/342a96295286c32753c3562214722f0b.png)
# 启动httpd服务 [root@happiness ~]# systemctl start httpd
5)浏览器测试
后话:
实验过程中,由于自己在/etc/httpd/conf/httpd.conf配置中又添加了"Listen 443",导致启动httpd无法启动服务,查看错误日志:cat /var/log/httpd/error_log。
安装mod_ssl模块后生成的配置文件/etc/httpd/conf.d/ssl.conf中,已经启用监听443端口,无须在主配置文件httpd.conf再添加。
相关文章推荐
- wampserver 使用openssl和apache搭建https服务器教程
- apache服务器安装配置ssl数字证书,https访问
- 微信支付证书问题C#使用Https访问加载SSL证书本地调试正常服务器IIS内部错误解决方法
- Apache使用 .htaccess 来实现强制https访问的方法
- Nginx学习-2 使用Nginx搭建HTML web服务器 实现SSL证书安全访问
- Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号
- 使用Apache HttpClient访问网络(实现手机端注册,服务器返回信息)
- Apache使用 .htaccess 来实现强制https访问
- Apache 通过CGI方式实现对fossil仓库访问的服务器搭建
- 使用newifi路由器刷Openwrt Pandora后,树莓派实现外网访问,各种服务器搭建
- node.js使用(五):网站访问、搭建服务器及留言功能的实现
- 为微信小程序搭建https服务,证书申请及配置。Apache服务器。重点描述request:fail ssl hand shake error 错误
- Nginx实现ssl一级、二级域名证书部署并用https访问代理转发服务器
- Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
- 服务器架构--------iis与Apache共存搭建(都可以使用域名访问,而不带后面的:80,90等)
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
- 微信小程序免费HTTPS证书申请搭建教程(2)---安装SSL并使用HTTPS访问
- 【Jena使用手册】用Python访问Apache Jena数据库 利用Fuseki搭建HTTP访问服务器
- wampserver 使用openssl和apache搭建https服务器教程
- Apache+OpenSSL实现证书服务器提供HTTPS