您的位置:首页 > 理论基础 > 计算机网络

在CentOS配置Apache的HTTPS服务

2016-06-18 20:57 423 查看
在这篇文章中,我们将介绍如何生成和部署自签名证书,使得HTTP服务更换为HTTPS服务,保证数据的安全性。

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.crt
3、配置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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: