apache - 如何在支持 SSL 的 Amazon EC2 单实例上托管多个网站?

标签 apache amazon-web-services ssl

我是 Amazon Web Service 的初学者。我想在单个 aws t2.micro 服务器上托管多个网站。我在下面找到了解决方案。

<VirtualHost *:80>
ServerAdmin webmaster@yourdomain.com
DocumentRoot "/var/www/html/website1_folder"
ServerName yourdomain.com
ErrorLog "logs/yourdomain.com-error_log"
CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@yourdomain.com
DocumentRoot "/var/www/html/website2_folder"
ServerName subdomain.yourdomain.com
ErrorLog "logs/yourdomain.com-error_log"
CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@yourdomain.com
DocumentRoot "/var/www/html/website3_folder"
ServerName anotherdomain.com
ErrorLog "logs/yourdomain.com-error_log"
CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>

但是,此解决方案仅适用于非 SSL 网站。如何在支持 SSL 的单个 Amazon EC2 实例上设置多个网站?我更喜欢 apache 网络服务器,因为我的所有网站都将使用 php 或静态 html。是否有任何从开始到结束配置的分步指南,例如配置实例、apache 服务器、dns 和 ssl 配置?请帮忙。提前致谢。

最佳答案

你有多种选择

  • 通配符证书(例如*.mysite.com)允许您使用任何子域邮件,但是通常这些证书需要花费一些时间并且您仅限于子域级别
  • 您可以通过“主题备用名称”申请支持域列表的证书https://www.digicert.com/subject-alternative-name.htm
  • 你可以使用 SNI https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI客户端在 ssl 握手期间发送请求的主机名,amd 服务器可以为不同的主机名使用不同的证书(目前大多数客户端今天支持 SNI,旧的浏览器版本或客户端框架可能不支持它)

我认为您最好的机会是 SNI

关于apache - 如何在支持 SSL 的 Amazon EC2 单实例上托管多个网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51692682/

相关文章:

node.js - 启用 aws-xray serverless.yml

amazon-web-services - 如何使我的基于 go daddy 的域名具有 https url?

oracle - 数据库服务器 TLS 配置。故障 TNS-00542 : SSL Handshake failed

java - Apache Common Math 的分数到双倍

php - 带有重复 URL 重定向的本地 Laravel 错误 404

apache 和 IP 怪癖

c# - 如何修复 "Assertion Failed"- FireQuickVerifySSL

java - Apache POI,CREATE_NULL_AS_BLANK 导致错误

amazon-web-services - 如何为API请求添加Cognito授权?这样 Lambda 就可以访问它

多个域的 SSL 证书