2016-11-04 4 views
2

AWS EBSシングルインスタンス - Tomcat(手順はhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-tomcat.htmlに続きます)にSSL証明書(CAから取得)をインストールするプロセス中に、 。AWS EBSシングルインスタンス(Tomcat)にSSL証明書をインストール

インスタンスが失敗しました。リターンコード:1出力:httpd:プロセスが見つかりません。 .ebextensions/https-instance.configのcontainer_command killhttpdが失敗しました。

デプロイ時に取得されるssl.config(以下に示す)ファイルを作成しました。しかし残念ながら、上記のエラーでデプロイメントが失敗します。 container_commandがファイルから削除された場合

Resources: 
    sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress 
    Properties: 
    GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} 
    IpProtocol: tcp 
    ToPort: 443 
    FromPort: 443 
    CidrIp: 0.0.0.0/0 

packages: 
yum: 
    mod_ssl : [] 

files: 
    /etc/httpd/conf.d/ssl.conf: 
    mode: "000644" 
    owner: root 
    group: root 
    content: | 
     LoadModule ssl_module modules/mod_ssl.so 
     Listen 443 
     <VirtualHost *:443> 
     <Proxy *> 
      Order deny,allow 
      Allow from all 
     </Proxy> 
     ServerName   www.mydomain.com 
     SSLEngine    on 
     SSLCertificateFile "/etc/pki/tls/certs/server.crt" 
     SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" 
     SSLCipherSuite  EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH 
     SSLProtocol   All -SSLv2 -SSLv3 
     SSLHonorCipherOrder On 

     Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" 
     Header always set X-Frame-Options DENY 
     Header always set X-Content-Type-Options nosniff 

     LogFormat "%h (%{X-Forwarded-For}i) %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" 
     ErrorLog /var/log/httpd/elasticbeanstalk-error_log 
     TransferLog /var/log/httpd/elasticbeanstalk-access_log 
    </VirtualHost> 

/etc/pki/tls/certs/server.crt: 
    mode: "000400" 
    owner: root 
    group: root 
    content: | 
    -----BEGIN CERTIFICATE----- 
    .... 
    -----END CERTIFICATE----- 

/etc/pki/tls/certs/server.key: 
    mode: "000400" 
    owner: root 
    group: root 
    content: | 
    -----BEGIN RSA PRIVATE KEY----- 
    .... 
    -----END RSA PRIVATE KEY----- 

container_commands: 
    killhttpd: 
    command: "killall httpd" 
    waitforhttpddeath: 
    command: "sleep 3" 

は、展開が正常に完了しますが、有効になっていないエンドとhttpsでは効果がありません。私はポート443が関連付けられているセキュリティグループで有効になっていることを確認しました。

処理中に欠落していることを理解するのを手伝ってください。

+0

'killall httpd'を実行しようとすると、' httpd'が実行されていないように見えます。なぜあなたは 'httpd'を殺していますか? –

+0

ユーザーの元の段落内のリンクされたAWS命令に記載されているとおり、「サービスが新しいhttps.confファイルと証明書を使用するように、すべての設定が完了したら、container_commandsキーがhttpdサービスを停止します。私も同じ問題にぶつかり、まだ解決していません。 –

答えて

1

デプロイされたサーバー上で少しスヌーピングした後、AWSはワーカープロセスをhttpd.workerとして設定し、httpdではなく設定しています。これはサーバの/ etc/sysconfig/httpdにあります。

container_commands: 
    killhttpd: 
    command: "/sbin/service httpd stop" 
    waitforhttpddeath: 
    command: "sleep 3" 

私はまだ完全なHTTPSの機能をテストしていませんが、少なくともこれは、この記事で指定されたエラーを解決:代わりにYAMLファイル内のkillallコマンドを変更するので、私は次のように使用する鉱山を切り替えます。