Mengakhiri HTTPS pada instans EC2 yang menjalankan Tomcat - AWS Elastic Beanstalk

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengakhiri HTTPS pada instans EC2 yang menjalankan Tomcat

Untuk jenis kontainer Tomcat, Anda menggunakan file konfigurasi untuk mengaktifkan Apache HTTP Server agar menggunakan HTTPS ketika bertindak sebagai proksi terbalik untuk Tomcat.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori .ebextensions paket sumber Anda. File konfigurasi melakukan tugas berikut:

  • Kunci files tersebut membuat file berikut pada instans:

    /etc/pki/tls/certs/server.crt

    Membuat file sertifikat pada instans. Ganti konten file sertifikat dengan konten sertifikat Anda.

    catatan

    YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.

    /etc/pki/tls/certs/server.key

    Membuat file kunci pribadi pada instans. Ganti konten kunci pribadi dengan konten kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri.

    /opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh

    Membuat skrip kait pasca-deployment untuk memulai kembali layanan httpd.

contoh .ebextensions/https-instance.config
files: /etc/pki/tls/certs/server.crt: mode: "000400" owner: root group: root content: | -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: mode: "000400" owner: root group: root content: | -----BEGIN RSA PRIVATE KEY----- private key contents # See note below. -----END RSA PRIVATE KEY----- /opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh: mode: "000755" owner: root group: root content: | #!/usr/bin/env bash sudo service httpd restart

Anda juga harus mengonfigurasi server proksi lingkungan Anda untuk mendengarkan port 443. Konfigurasi Apache 2.4 berikut menambahkan pendengar pada port 443. Untuk mempelajari informasi lebih lanjut, lihat Mengonfigurasi server proksi lingkungan Tomcat Anda.

contoh .ebextensions/httpd/conf.d/ssl.conf
Listen 443 <VirtualHost *:443> ServerName server-name SSLEngine on SSLCertificateFile "/etc/pki/tls/certs/server.crt" SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-ssl-error_log </VirtualHost>

Vendor sertifikat Anda mungkin menyertakan sertifikat perantara yang dapat Anda instal untuk kompatibilitas yang lebih baik dengan klien seluler. Konfigurasikan Apache dengan paket otoritas sertifikat menengah (CA) dengan menambahkan hal berikut ke file konfigurasi SSL Anda (lihat Memperluas dan mengganti konfigurasi Apache default - Amazon Linux () AMI AL1 untuk lokasi):

  • Pada konten file ssl.conf, tentukan file rantai:

    SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" SSLCertificateChainFile "/etc/pki/tls/certs/gd_bundle.crt" SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  • Tambahkan entri baru ke kunci files dengan konten sertifikat menengah:

    files: /etc/pki/tls/certs/gd_bundle.crt: mode: "000400" owner: root group: root content: | -----BEGIN CERTIFICATE----- First intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Second intermediate certificate -----END CERTIFICATE-----
catatan

Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat Menyimpan kunci pribadi dengan aman di Amazon S3.

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan fungsi AWS CloudFormation dan menambahkan aturan ke dalamnya.

contoh .ebextensions/https-instance-single.config
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0

Untuk lingkungan yang seimbang dengan beban, Anda mengonfigurasi penyeimbang beban ke lingkungan yang seimbangmelewati lalu lintas aman melalui tak tersentuh, ataumendekripsi dan mengenkripsi ulanguntukend-to-endenkripsi.