Centos+Apache实现多站点及强制https访问

简介: 本文介绍了如何通过Centos+Apache在一个服务器上搭建多个http站点,以及如何实现http访问时,强制跳转到https。

一、安装Apache和mod_ssl

1.1安装Apache服务

1.1.1查看当前安装的Apache服务

rpm -qa|grep httpd

e7ce373b985058964ea2494d13641fdd8e0dada8

1.1.2 若需要重新安装,需先卸载(不需要请跳过卸载步骤1.1)

1.1.2.1  停止httpd服务

service httpd stop

1.1.2.2  卸载httpd服务

 rpm -e httpd-2.4.6-45.el7.centos.4.x86_64 --nodeps

“httpd-2.4.6-45.el7.centos.4.x86_64”为1.1.1返回结果的最后一个包

1.1.2.3  验证是否卸载成功

rpm -qa|grep httpd

1.1.3 安装Apache

yum install httpd

1.2 安装 mod_ssl

1.1.1查看当前安装的mod_ssl

rpm -qa|grep mod_ssl

1.1.2 若需要重新安装,需先卸载(不需要请跳过卸载步骤)

1.1.2.1  卸载mod_ssl服务

 rpm -e mod_ssl-2.4.6-45.el7.centos.4.x86_64 --nodeps

“mod_ssl-2.4.6-45.el7.centos.4.x86_64”为1.1.1返回结果的最后一个包

1.1.2.3  验证是否卸载成功

rpm -qa|grep mod_ssl

1.1.3 安装mod_ssl

yum install mod_ssl

温馨提示:

apache服务启动停止命令:

service httpd start 启动

service httpd restart 重新启动

service httpd stop 停止服务

1.3上传web文件

cd  /var/www/html  //上传文件的路径

wget http://test.oss-cn-shenzhen.aliyuncs.com/web/index.html  //wget跟的网页文件的下载地址。

1.4访问测试

1.4.1 启动web 服务

service httpd start

1.4.2 浏览器输入服务器公网地址访问测试

二、配置一个服务器对应多个站点

2.1 新增站点配置文件目录

cd /etc/httpd

sudo mkdir vhost-conf.d

2.2  我们在 vhost-conf.d 目录下新增我们的虚拟主机配置文件 w1-test-com.conf 和 w2-test-com.conf,以 w1-test-com.conf 为例:

cd /etc/httpd/vhost-conf.d

vim w1-test-com.conf

粘贴内容如下:

<VirtualHost *:80>

    ServerName w1.test.com

    DocumentRoot /var/www/html/

    <Directory " /var/www/html/">

          Options FollowSymLinks

          AllowOverride All

          #Require all denied

          Require all granted

    </Directory>

</VirtualHost>

说明: 1. ServerName 为网站的正确访问域名

2. DocumentRoot 为网页文件本地路径

3. Directory为网页文件本地路径

其他内容不用更改。

针对 w2-test-com.conf 改变相应的配置,即修改 ServerName w2.test.comDocumentRoot Directory 修改为/var/www/web/

2.3在主配置中引入我们的虚拟主机配置

vim /etc/httpd/conf/httpd.conf

# 在主配置文件末尾添加以下内容

Include vhost-conf.d/*.conf

2.4:在对应目录放入项目代码

我们的 w1项目代码放在/var/www/html/,w2 项目代码放在/var/www/web/,w1的目录已经创建,还需要创建w2,那么我们在对应目录下创建对应目录并赋予相应权限:

sudo mkdir -p /var/www/web/

然后在/var/www/web/ 下放入项目代码,这里为了测试就新建 index.html,内容如下:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

</head>

<body>

<h1>Apache-centos-20170717-20170725</h1>

<h1>site-2</h1>

</body>

</html>

赋予相应的权限:

sudo chmod -R 777 /var/www/web/

2.5:修改 /etc/hosts 文件

vim /etc/hosts 文件,开头是:

127.0.0.1   localhost

我们在该行后面添加:

127.0.0.1   w1.test.com

127.0.0.1   w2.test.com

 

2.6:重启 apache 服务器并测试

重启 apache 服务器使得配置生效:

service httpd restart 重新启动

三、购买阿里云证书

3.1 购买证书

参考链接:https://help.aliyun.com/document_detail/28548.html?spm=5176.doc28542.6.554.ieFKC1的一二点,三四点可以忽略。

注意:

验证方式选择DNS时,需要在DNS添加证书要求的DNS记录。证书颁发下来之后,既可以下载到本地了。

四、配置HTTPS

4.1上传证书到对应的目录

public.pem /etc/pki/tls/certs/

214150120520385.key /etc/pki/tls/private/

chain.pem /etc/pki/tls/certs/

4.2  修改ssl.conf的配置文件

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

修改下列参数—引入证书路径:

SSLCertificateFile /etc/pki/tls/certs/public.pem

# 证书私钥配置

SSLCertificateKeyFile /etc/pki/tls/private/214150120520385.key

# 证书链配置,如果该属性开头有 '#'字符,请删除掉

SSLCertificateChainFile /etc/pki/tls/certs/chain.pem

修改下列参数—修改web站点文件目录:

DocumentRoot "/var/www/html"

ServerName w1.test.com:443

 

78ad482a29fa4c7f6243ad23f3f106e1af90e3e9

注意:需要重启阿帕奇服务器

五、验证HTTPS和多站点访问

http://w1.test.com

https://w1.test.com
http://w2.
test.com

六、实现强制HTTPS访问

6.1修改虚拟主机配置文件

vim /etc/httpd/vhost-conf.d/w1-test-com.conf

添加如下内容:

RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]

eebdf4ce4e99f6f7fc66775ea90ab62dd76e73e8

注意:需要重启阿帕奇服务器

6.2 验证

使用http访问网站,验证其是否会跳转到https。

基于ECS使用FileZilla Server建立安全的SSL/TLS FTP

Window server自带组件搭建FTP服务

目录
相关文章
|
8月前
|
运维 网络协议 安全
为什么经过IPSec隧道后HTTPS会访问不通?一次隧道环境下的实战分析
本文介绍了一个典型的 HTTPS 无法访问问题的排查过程。问题表现为 HTTP 正常而 HTTPS 无法打开,最终发现是由于 MTU 设置不当导致报文被丢弃。HTTPS 因禁止分片,对 MTU 更敏感。解决方案包括调整 MSS 或中间设备干预。
|
9月前
|
数据采集 Web App开发 iOS开发
解决Python爬虫访问HTTPS资源时Cookie超时问题
解决Python爬虫访问HTTPS资源时Cookie超时问题
|
安全 网络协议 网络安全
只有IP地址没有域名,如何实现HTTPS访问?
在仅有IP地址而无域名的情况下,实现HTTPS访问并非不可能。主要挑战包括证书颁发机构(CA)对IP地址的支持有限及浏览器兼容性问题。解决方案有:1) 搭建私有CA为内部IP地址颁发证书;2) 使用支持IP地址的公共CA服务。选择合适的方案需根据需求权衡。具体步骤包括选择证书类型、生成CSR文件、提交并完成验证、安装SSL证书和配置强制HTTPS访问。确保IP地址稳定,并定期维护安全性。 **申请优惠**:访问JoySSL官网并填写注册码“230907”可优惠申请IP地址证书。
2280 5
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
4894 8
|
安全 网络协议 应用服务中间件
内网ip申请SSL证书实现https访问
内网IP地址虽不能直接申请公网SSL证书,但可通过IP SSL证书保障数据安全。流程包括:确定固定内网IP,选择支持内网IP的CA,注册申请证书,生成CSR,验证IP所有权,下载部署证书至Web服务器,测试HTTPS访问,确保配置正确及证书有效。此方法适用于内网环境,提升数据传输安全性。
内网ip申请SSL证书实现https访问
|
安全 网络安全 数据安全/隐私保护
政务内网实现https访问教程
政务内网实现HTTPS访问需经过多个步骤:了解HTTPS原理,选择并申请适合的SSL证书,配置SSL证书至服务器,设置端口映射与访问控制,测试验证HTTPS访问功能,注意证书安全性和兼容性,定期备份与恢复。这些措施确保了数据传输的安全性,提升了政务服务的效率与安全性。
|
Web App开发 算法 应用服务中间件
nginx开启局域网https访问
【10月更文挑战第22天】为了调试WebRTC功能,需要在局域网内搭建HTTPS协议。具体步骤包括:在已部署Nginx和安装OpenSSL的环境中生成私钥、证书签名请求和自签名证书;将生成的文件放置到Nginx的证书目录并修改Nginx配置文件,最后重启Nginx服务。注意,自签名证书不受第三方机构认可,如需正式使用,需向CA申请签名。
1090 2
|
安全 网络安全 数据安全/隐私保护
内网IP地址实现HTTPS加密访问教程
在内网环境中,为确保数据传输的安全性,绑定SSL证书搭建HTTPS服务器至关重要。本文介绍了内网IP地址的前期准备、申请SSL证书的步骤以及客户端配置方法。具体包括选择合适的CA、注册账号、提交申请、下载证书,并在客户端导入根证书,确保通信数据的安全加密。推荐使用JoySSL提供的技术解决方案,确保内网设备通信安全。
内网IP地址实现HTTPS加密访问教程
|
安全 网络协议 网络安全
怎么给ip地址配置https访问
为了配置公网IP地址的HTTPS访问,首先需明确需求并选择受信任的证书颁发机构(如JoySSL)。接着,在JoySSL官网注册并登录,填写特定注册码230922以获取免费IP证书的测试权限。提交证书申请时,填写IP地址及相关验证信息,并完成IP地址验证。验证通过后,下载证书文件。最后,使用浏览器访问IP地址,检查安全连接标志,确保无证书错误。通过以上步骤,可成功配置IP地址的HTTPS访问,提升数据传输安全性和可信度。
|
编解码 JSON 安全
使用search-guard加固安全为https访问
使用search-guard加固安全为https访问