在CentOS配置Apache的HTTPS服务
2016-06-18 20:57
423 查看
在这篇文章中,我们将介绍如何生成和部署自签名证书,使得HTTP服务更换为HTTPS服务,保证数据的安全性。
1、准备工作
(1)CentOS已经安装Apache
Web服务器。
(2)使用OpenSSL生成自签名证书。如果尚未安装OpenSSL,它可以使用yum来安装。
2、生成自签名证书
(1)生成2048位的加密私钥
(1)将证书复制到相应文件目录下
4、调整虚拟主机
Apache
Web服务器可以配置为多个Web站点。这些站点在httpd的配置文件中以虚拟主机的形式定义。例如,让我们假设我们的Apache Web服务器托管站点为www.example.com,网站所有的文件都保存在/var/www/html/virtual-web目录。对于虚拟主机,典型的HTTP配置/etc/httpd/conf/httpd.conf。
由于安全需求,Web服务器仅使用HTTPS,需要将所有HTTP请求(端口80)重定向到HTTPS(端口443)。 Apache Web服务器可以容易地做到这一点。
(1)强迫主站使用 /etc/httpd/conf/httpd.conf
1、准备工作
(1)CentOS已经安装Apache
Web服务器。
(2)使用OpenSSL生成自签名证书。如果尚未安装OpenSSL,它可以使用yum来安装。
yum install mod_ssl openssl
2、生成自签名证书
(1)生成2048位的加密私钥
openssl genrsa -out test.key 2048(2)生成证书签名请求csr
openssl req -new -key test.key -out test.csr(3)生成类型为X509的自签名证书
openssl x509 -req -days 365 -in test.csr -signkey test.key -out test.crt3、配置Apache Web服务器
(1)将证书复制到相应文件目录下
cp test.crt /etc/pki/tls/certs/ cp test.key /etc/pki/tls/private/ cp test.csr /etc/pki/tls/private/(2)修改配置文件 /etc/httpd/conf.d/ssl.conf
# 修改下面参数 SSLCertificateFile /etc/pki/tls/certs/test.crt SSLCertificateKeyFile /etc/pki/tls/private/test.key #如果使用的是认证官方证书,可能需要修改下面参数;自签名证书忽略这个参数即可 SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle(3)重启httpd服务,使更新配置生效
<span style="font-size:24px;">service httpd restart</span>
4、调整虚拟主机
Apache
Web服务器可以配置为多个Web站点。这些站点在httpd的配置文件中以虚拟主机的形式定义。例如,让我们假设我们的Apache Web服务器托管站点为www.example.com,网站所有的文件都保存在/var/www/html/virtual-web目录。对于虚拟主机,典型的HTTP配置/etc/httpd/conf/httpd.conf。
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin email@example.com DocumentRoot /var/www/html/virtual-web ServerName www.example.com </VirtualHost>修改后
NameVirtualHost *:443 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/test.crt SSLCertificateKeyFile /etc/pki/tls/private/test.key <Directory /var/www/html/virtual-web> AllowOverride All </Directory> ServerAdmin email@example.com DocumentRoot /var/www/html/virtual-web ServerName www.example.com </VirtualHost>5、强制Apache Web服务器始终使用https
由于安全需求,Web服务器仅使用HTTPS,需要将所有HTTP请求(端口80)重定向到HTTPS(端口443)。 Apache Web服务器可以容易地做到这一点。
(1)强迫主站使用 /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 Redirect permanent / https://www.example.com[/code](2)强迫虚拟主机使用<VirtualHost *:80> ServerName www.example.com Redirect permanent / https://www.example.com/ </VirtualHost>
相关文章推荐
- HTTP Status 404 -(tomcat,springmvc,ModelAndView)
- https 相关知识 (openssl)
- 注意设置httpclient连接数
- (1) Socket网络编程(C#)----TcpListener 与 TcpClient
- Httpservlet
- [机器学习笔记]Note6--神经网络:表达
- JAVA利用HttpClient进行POST请求(HTTPS)
- EZ的间谍网络(codevs 4093)
- HTTP协议首部字段transfer-encoding与content-length差异
- 【VS开发】【DSP开发】TCP和UDP数据包结构
- ios学习路线—iOS高级(TCP/IP协议)
- 互联网协议入门-通俗易懂的讲计算机网络5层结构
- “字节序”是个什么鬼? 大端 小端 主机字节序 网络字节序
- 一次完整的HTTP事务是怎样一个过程?
- 网络IP
- ios学习路线—iOS高级(HTTP协议)
- 首次使用树莓派2(安装系统+SSH+VNC+无线网络配置)
- Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- 获取iOS项目名称及版本号以及网络类型的方法
- 【bzoj4538】【HNOI2016】【网络】【树链剖分+线段树套堆】