我可以用下面的配置文件來解決:
HTTPS的實例balancer.config
{
"Resources": {
"AWSEBSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"VpcId": "vpc-xxxxxxxx",
"GroupDescription": "EC28443Ingress",
"SecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": 8443,
"ToPort": 8443,
"CidrIp": "0.0.0.0/0"
}
]
}
},
"AWSEBLoadBalancerSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"VpcId": "vpc-xxxxxxxx",
"GroupDescription": "ELB443and8443Ingress",
"SecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": 443,
"ToPort": 443,
"CidrIp": "0.0.0.0/0"
}
],
"SecurityGroupEgress": [
{
"IpProtocol": "tcp",
"FromPort": 8443,
"ToPort": 8443,
"CidrIp": "0.0.0.0/0"
}
]
}
},
"AWSEBLoadBalancer": {
"Type": "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties": {
"Listeners": [
{
"LoadBalancerPort": 443,
"Protocol": "TCP",
"InstancePort": 8443,
"InstanceProtocol": "TCP"
}
],
"SecurityGroups": [
{
"Fn::GetAtt": [
"AWSEBLoadBalancerSecurityGroup",
"GroupId"
]
}
]
}
}
}
}
HTTPS-LB-passthrough.config
{
"option_settings": {
"aws:elb:listener:443": {
"ListenerProtocol": "TCP",
"InstancePort": 8443,
"InstanceProtocol": "TCP"
},
"aws:elb:healthcheck": {
"Target": "TCP:8443"
}
}
}
這大概可以用Terraform等軟件更容易完成,但對某些人來說這可能不是一種選擇。
你會認爲A)這是一個常見的用例,B)AWS提供的文檔將包含這樣一個例子。我一整天都在努力讓自己的例子與Play一起工作,因爲它不是以root身份啓動的,因此可以訪問默認端口 - ergo必須精確地執行上述操作 - 以虛擬方式使用您的文件並立即工作!謝謝。 – Techmag
該死!從頭開始 - 結果我意外地連接到了ec2實例,而不是前端負載均衡器。好像你已經讓實例在端口443上以某種方式提供服務(如果我可以讓ELB與之交談,這可能是有用的 - 完全不確定證書是如何提供的(正確地我可以添加),但是它是以某種方式)...回頭撞門...... – Techmag