Apache 单IP配置多个HTTPS虚拟主机

简介: Apache 文档中提到,不能在单个 IP上同时有多个按名字识别的虚拟主机("named virtual host"),其实不完全是这样了。使用SNISNI全称Server Name Indication(服务器名称指示),这个问题可以解决apache中的单IP多HTTPS虚拟主机,只有默认第一个站点的SSL生效的问题。但是这些技术需要浏览器的版本支持

Apache 文档中提到,不能在单个 IP上同时有多个按名字识别的虚拟主机("named virtual host"),其实不完全是这样了。
使用SNI
SNI全称Server Name Indication(服务器名称指示),这个问题可以解决apache中的单IP多HTTPS虚拟主机,只有默认第一个站点的SSL生效的问题。但是这些技术需要浏览器的版本支持

支持SNI的浏览器

  • Mozilla Firefox 2.0 or later
  • Opera 8.0 or later (the TLS 1.1 protocol must be enabled)
  • Internet Explorer 7 (Vista, not XP) or later
  • Google Chrome (Vista, not XP) (NOT Chromium)
  • Safari 3.2.1 Mac OS X 10.5.6

支持SNI的web容器

  • apache版本在2.2.12以上
  • 需要mod_gnutls或者mod_ssl模块的支持
  • Openssl在0.9.8j后的版本也都支持了SNI的功能

配置Apache

  • 打开Apache/conf/extra/httpd-vhost.conf文件并找到以下参数进行配置。
Listen 443
NameVirtualHost *:443

<VirtualHost *:443>
ServerName www.test1.com
SSLOptions StrictRequire
DocumentRoot /path/to/ssl/enabled/site
SSLProtocol all -SSLv2 -SSLv3
#这里我们同时禁用了SSLv2、SSLv3不安全的协议
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile conf/server.crt
SSLCertificateKeyFile conf/server.key
SSLCertificateChainFile conf/ca.crt
#默认SSLCertificateChainFile会被注释,请删除行首的“#”号注释符,并将CA证书ca.crt配置到该路径下
<Directory /path/to/ssl/enabled/site/>
SSLRequireSSL
Order Deny,Allow
Allow from All
</Directory>
</VirtualHost>


<VirtualHost *:443>
ServerName www.test2.com
SSLOptions StrictRequire
DocumentRoot /path/to/other/ssl/enabled/site
SSLProtocol all -SSLv2 -SSLv3
#这里我们同时禁用了SSLv2、SSLv3不安全的协议
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile conf/server.crt
SSLCertificateKeyFile conf/server.key
SSLCertificateChainFile conf/ca.crt
#默认SSLCertificateChainFile会被注释,请删除行首的“#”号注释符,并将CA证书ca.crt配置到该路径下
<Directory /path/to/other/ssl/enabled/site/>
SSLRequireSSL
Order Deny,Allow
Allow from All
</Directory>
</VirtualHost>

最后,保存 httpd-vhost.conf 文件并退出,使用https方式访问网站,测试证书配置是否成功。

目录
相关文章
|
2月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
503 1
|
6月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
676 87
|
22天前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
109 16
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS
|
12月前
|
安全 网络协议 应用服务中间件
内网ip申请SSL证书实现https访问
内网IP地址虽不能直接申请公网SSL证书,但可通过IP SSL证书保障数据安全。流程包括:确定固定内网IP,选择支持内网IP的CA,注册申请证书,生成CSR,验证IP所有权,下载部署证书至Web服务器,测试HTTPS访问,确保配置正确及证书有效。此方法适用于内网环境,提升数据传输安全性。
内网ip申请SSL证书实现https访问
|
12月前
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
571 10
|
数据安全/隐私保护 Docker 容器
配置Harbor支持https功能实战篇
关于如何配置Harbor支持HTTPS功能的详细教程。
719 12
配置Harbor支持https功能实战篇
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
617 8
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
346 3
Hadoop集群配置https实战案例
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
1050 3
Docker配置https证书案例

推荐镜像

更多
下一篇
开通oss服务