我的域名和子域名目前在 GoDaddy 上设置,并且我在 AWS EC2 Windows 实例上的 tomcat 上运行了一个 Web 门户。我已将 tomcat 配置为在 HTTPS 端口 443 上运行。我设置了带掩码的转发规则,以将我的子域名指向我的 EC2 实例 -
- 域名 - www.example.co.uk
- 子域名 - portal.example.co.uk 转发至
https://some ip:443
我为我的 tomcat 安装创建了一个密钥库和 CSR,并为 portal.example.co.uk 购买了一个基本的 SSL 证书并将其导入到我的 tomcat 密钥库中。
当我访问 portal.example.co.uk 时,它似乎是 http 而不是 https。
我想这是一个双重问题...
如果子域转发到 HTTPS 地址,那么该请求是否应该显示为 HTTPS?
当尝试保护子域时,您可以通过在 EC2 实例上安装证书来执行此操作,还是需要从 GoDaddy 执行此操作?
当我与 GoDaddy 谈论此事时,他们说为了实现我想要的目标,我需要支付 200 英镑以上的费用购买通配符证书。
答案1
仅将子域名指向 HTTPS 地址并不能使网站在 HTTPS 上运行。
相反,你需要执行以下操作
- 从 TomCat 生成 CSR(证书签名请求)
- 从 GoDaddy 或其他任何人处购买 WildCard 证书(以覆盖域名和子域名)或使用 OpenSSL 生成您自己的证书(某些浏览器可能无法识别根证书)
- 使用 CSR 生成证书
- 将证书上传到 Tomcat
- 更改 tomcat 中的站点配置以加载此证书,并在浏览器发出 HTTPS 请求时进行切换
- 在站点配置中将所有 HTTP 请求重定向到 HTTPS 请求
答案2
你可以迁移将您的域名添加到 Route 53(这是可选的)
使用AWS 证书管理器(免费),申请 portal.example.co.uk 的证书,并将其放置在弹性负载均衡器 (ELB) 上。
将 portal.example.co.uk 指向 ELB(如果使用 GoDaddy 则使用 CNAME,如果使用路由 53 则使用别名)并设置 Tomcat 以将站点重定向到 https。
客户端和 ELB 之间将被加密,但 ELB 和 tomcat 服务器之间将使用 http,可以通过安全组锁定,以便只有 ELB 可以访问 tomcat 服务器。