使用json的Elastic Beanstalk单实例https示例

时间:2015-12-07 10:15:27

标签: amazon-web-services https yaml elastic-beanstalk single-instance

我一直在寻找使用JSON格式而不是YAML的示例,以便能够在Elastic Beanstalk服务器的单个实例中配置https。 .ebextensions/singlehttps.config内的文件 单个实例对于低端应用程序非常重要,因为我们不必使用负载均衡器,每月额外花费20美元。

1 个答案:

答案 0 :(得分:1)

经过这么多麻烦后,我把我的创作发布在这里,为其他人解决同样的问题。这是在PHP服务器上测试的。

{
    "files": {
        "/etc/pki/tls/certs/server.crt": {
            "owner": "root",
            "source": "amazon/s3/url/server.crt",
            "group": "root",
            "mode": "000700"
        },
        "/etc/pki/tls/certs/server.key": {
            "owner": "root",
            "source": "amazon/s3/url/server.key",
            "group": "root",
            "mode": "000700"
        },
        "/etc/pki/tls/certs/gd_bundle.crt": {
            "owner": "root",
            "source": "amazon/s3/url/gd_bundle.crt",
            "group": "root",
            "mode": "000700"
        },
        "/etc/httpd/conf.d/ssl.conf": {
            "owner": "root",
            "content": "LoadModule ssl_module modules/mod_ssl.so\nListen 443\n<VirtualHost *:443>\n  <Proxy *>\n    Order deny,allow\n    Allow from all\n  </Proxy>\n\n  SSLEngine             on\n  SSLCertificateFile    \"/etc/pki/tls/certs/server.crt\"\n  SSLCertificateKeyFile \"/etc/pki/tls/certs/server.key\"\n  SSLCertificateChainFile \"/etc/pki/tls/certs/gd_bundle.crt\"\n  SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\n  SSLProtocol           All -SSLv2 -SSLv3\n  SSLHonorCipherOrder   On\n  SSLSessionTickets     Off\n\n  Header always set Strict-Transport-Security \"max-age=63072000; includeSubdomains; preload\"\n  Header always set X-Frame-Options DENY\n  Header always set X-Content-Type-Options nosniff\n\n  ProxyPass / http://localhost:80/ retry=0\n  ProxyPassReverse / http://localhost:80/\n  ProxyPreserveHost on\n  RequestHeader set X-Forwarded-Proto \"https\" early\n\n  LogFormat \"%h (%{X-Forwarded-For}i) %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\"\n  ErrorLog /var/log/httpd/elasticbeanstalk-error_log\n  TransferLog /var/log/httpd/elasticbeanstalk-access_log\n</VirtualHost>\n",
            "group": "root",
            "mode": "000644"
        }
    },
    "packages": {
        "yum": {
            "mod24_ssl": []
        }
    },
    "Resources": {
        "sslSecurityGroupIngress": {
            "Type": "AWS::EC2::SecurityGroupIngress",
            "Properties": {
                "ToPort": 443,
                "IpProtocol": "tcp",
                "GroupId": {
                    "Fn::GetAtt": [
                        "AWSEBSecurityGroup",
                        "GroupId"
                    ]
                },
                "FromPort": 443,
                "CidrIp": "0.0.0.0/0"
            }
        },
        "AWSEBAutoScalingGroup": {
            "Metadata": {
                "AWS::CloudFormation::Authentication": {
                    "S3Auth": {
                        "roleName": {
                            "Fn::GetOptionSetting": {
                                "Namespace": "aws:asg:launchconfiguration",
                                "DefaultValue": "aws-elasticbeanstalk-ec2-role",
                                "OptionName": "IamInstanceProfile"
                            }
                        },
                        "buckets": [
                            "amazons3bucket"
                        ],
                        "type": "s3"
                    }
                }
            }
        }
    }
}