Mengakhiri HTTPS pada instans EC2 yang menjalankan Node.js - 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 Node.js

File konfigurasi contoh berikut memperluas konfigurasi nginx default untuk mendengarkan di port 443 dan menghentikan koneksi SSL/TLS dengan sertifikat publik dan kunci pribadi.

Jika Anda mengonfigurasi lingkungan Anda untuk pelaporan kondisi yang ditingkatkan, Anda perlu mengonfigurasi nginx untuk menghasilkan log akses. Untuk melakukannya, batalkan komentar blok baris di bawah komentar yang berbunyi # For enhanced health... dengan menghapus karakter utama#.

contoh .ebextensions/https-instance.config
files: /etc/nginx/conf.d/https.conf: mode: "000644" owner: root group: root content: | # HTTPS server server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key /etc/pki/tls/certs/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; # For enhanced health reporting support, uncomment this block: #if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { # set $year $1; # set $month $2; # set $day $3; # set $hour $4; #} #access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd; #access_log /var/log/nginx/access.log main; location / { proxy_pass http://nodejs; proxy_set_header Connection ""; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } } /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-----

Kunci files tersebut membuat file berikut pada instans:

/etc/nginx/conf.d/https.conf

Konfigurasikan server nginx. File ini dimuat ketika layanan nginx dimulai.

/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.

Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di server.crt setelah sertifikat situs Anda.

-----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----
/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.

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 keduanyamelewati lalu lintas aman melalui tak tersentuh, ataumendekripsi dan mengenkripsi ulanguntukend-to-endenkripsi.