问题描述: 在AWS Elastic Beanstalk上添加了SSL证书后,仍然在访问网站时出现了"SSL_ERROR_BAD_CERT_DOMAIN"错误。
解决方法:
确保SSL证书与您的域名匹配。您可以通过检查证书中的Common Name(CN)和Subject Alternative Name(SAN)来验证。确保它们与您要保护的域名匹配。
确保您的应用程序正在使用正确的端口和协议。如果您的应用程序是使用HTTPS的默认端口443,确保您的负载均衡器和应用程序实例都配置为使用正确的协议和端口。
检查您的负载均衡器配置。确保负载均衡器的监听器配置正确,并将HTTP流量重定向到HTTPS。您可以使用以下代码示例作为参考:
Resources:
MyLoadBalancer:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
LoadBalancerAttributes:
- Key: idle_timeout.timeout_seconds
Value: '60'
Subnets:
- subnet-12345678
- subnet-87654321
SecurityGroups:
- sg-12345678
Scheme: internet-facing
Name: my-load-balancer
Type: application
IpAddressType: ipv4
Tags:
- Key: Name
Value: my-load-balancer
Listeners:
- LoadBalancerPort: 80
Protocol: HTTP
InstancePort: 80
InstanceProtocol: HTTP
DefaultActions:
- Type: redirect
RedirectConfig:
Protocol: HTTPS
Port: '443'
StatusCode: HTTP_301
确保在Listeners部分中指定了正确的端口和协议,并在DefaultActions部分中进行了重定向配置。
const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();
// SSL configuration
const options = {
key: fs.readFileSync('/path/to/private.key'),
cert: fs.readFileSync('/path/to/certificate.crt'),
ca: fs.readFileSync('/path/to/ca_bundle.crt')
};
// Start the server
https.createServer(options, app).listen(443);
// Rest of the application code...
在上面的示例中,您需要将正确的私钥、证书和CA捆绑包的路径传递给options对象。
如果您仍然遇到问题,请确保SSL证书的配置正确,并检查AWS Elastic Beanstalk和负载均衡器的相关配置。您还可以查看AWS Elastic Beanstalk的日志以获取更多详细信息。