绝想首页

apache配置https访问的方法

半山上后悔 [感悟] 2018-01-02 00:36:31 星期二 晴天 查看:242 回复:6 发消息给作者

1、首先查看自己的apache是否已经支持了启用了https。用phpinfo来查看,如下图显示,则已经支持https

如果没有https,则需要配置安装一下。

yum install mod_ssl openssl

安装完毕后,会自动在apache配置目录下生成 ssl.conf文件,后面会用到。

2. 生成一个自签名证书

下面的命令可以被用来产生一个自签名的证书。

首先,生成2048位的加密私钥

# openssl genrsa -out server.key 2048

然后,生成证书签名请求(CSR),这里需要填写许多信息,如国家,省市,公司等

# openssl req -new -key server.key -out server.csr

最后,生成类型为X509的自签名证书。有效期设置3650天,即有效期为10年

# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

创建证书后,将文件复制到对应的目录。

# cp server.crt /etc/pki/tls/certs/
# cp server.key /etc/pki/tls/private/        
# cp server.csr /etc/pki/tls/private/

3. 配置Apache Web服务器

首先,修改下面的配置文件。仅需配置红色部分 SSLCertificateFile 和 SSLCertificateKeyFile

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

3px;"> ### overwrite the following parameters ###
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key

### The following parameter does not need to be modified in case of a self-signed certificate. ###
### If you are using a real certificate, you may receive a certificate bundle. The bundle is added using the following parameters ###
SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle

然后,重新启动httpd服务使更改生效

# service httpd restart           // 或者  /etc/init.d/httpd restart

Web服务器现在可以使用HTTPS

4. 调整虚拟主机

Apache Web服务器可以配置为多个Web站点。这些站点在httpd的配置文件中以虚拟主机的形式定义。例如,让我们假设我们的Apache Web服务器托管站点为proxy.mimvp.com,网站所有的文件都保存在/var/www.juexiang.comvirtual-web目录。

对于虚拟主机,典型的HTTP配置是这样的。

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80


    ServerAdmin email@example.com
    DocumentRoot /var/www.juexiang.comvirtual-web
    ServerName proxy.mimvp.com

我们可以参考上面的配置创建HTTPS虚拟主机。

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:443


    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/server.crt
    SSLCertificateKeyFile /etc/pki/tls/private/server.key
   
        AllowOverride All
   
    ServerAdmin email@example.com
DocumentRoot /var/www.juexiang.comvirtual-web
ServerName proxy.mimvp.com

需要按照上面的配置,定义每个虚拟主机。添加虚拟主机后,重新启动Web服务。

# service httpd restart

现在的虚拟主机就可以使用HTTPS

实例见米扑代理: https://proxy.mimvp.com

 

5. 强制Apache Web服务器始终使用https

如果由于某种原因,你需要站点的Web服务器都只使用HTTPS,此时就需要将所有HTTP请求(端口80)重定向到HTTPS(端口443)。 Apache Web服务器可以容易地做到这一点。

1,强制主站所有Web使用全局站点

如果要强制主站使用HTTPS,我们可以这样修改httpd配置文件:

# vim /etc/httpd/conf/httpd.conf

ServerName www.juexiang.com:80
Redirect permanent / https://www.juexiang.com

重启Apache服务器,使配置生效:

# service httpd restart

 

2,强制虚拟主机单个站点

如果要强制单个站点在虚拟主机上使用HTTPS,对于HTTP可以按照下面进行配置:

# vim /etc/httpd/conf/httpd.conf


    ServerName proxy.mimvp.com
    
Redirect permanent / https://proxy.mimvp.com/

重启Apache服务器,使配置生效:

# service httpd restart

单个站点全部使用HTTPS,则 http://proxy.mimvp.com 会强制重定向跳转到 https://proxy.mimvp.com

 

一般情况下,由于浏览器会自动拦截https未被认证的网址,因此建议同时保留 http://proxy.mimvp.com 和 https://proxy.mimvp.com ,或者购买权威的认证服务,让用户浏览器信任https浏览访问。

 

米扑博客实例:

http://proxy.mimvp.com

https://proxy.mimvp.com

 

综上所述,当存在如用户登录,付款交易等交互时推荐HTTPS方式,可以提高服务器的安全性。

证书可以通过各种方式获得,如:自签名、社区提供的甚至商业机构够哦买的。管理员应当谨慎选择将要使用的证书的类型。

顶一下(1 写日记 6008833 268181
最近访客

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备15040838号-2   京公网安备11010802011908号

绝想网友交流QQ群318103019 客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com