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 Ruby
Untuk jenis kontainer Ruby, cara Anda mengaktifkan HTTPS tergantung pada jenis server aplikasi yang digunakan.
Konfigurasikan HTTPS untuk Ruby dengan Puma
Untuk jenis kontainer Ruby yang menggunakan Puma sebagai server aplikasi, Anda menggunakan file konfigurasi untuk mengaktifkan HTTPS.
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/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.
-
Kunci
container_commands
tersebut memulai ulang server nginx setelah semuanya dikonfigurasi sehingga server menggunakan filehttps.conf
baru.
contoh .ebextensions/https-instance.config
files:
/etc/nginx/conf.d/https.conf:
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;
location / {
proxy_pass http://my_app;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
location /assets {
alias /var/app/current/public/assets;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
location /public {
alias /var/app/current/public;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
}
/etc/pki/tls/certs/server.crt:
content: |
-----BEGIN CERTIFICATE-----
certificate file contents
-----END CERTIFICATE-----
/etc/pki/tls/certs/server.key:
content: |
-----BEGIN RSA PRIVATE KEY-----
private key contents
# See note below.
-----END RSA PRIVATE KEY-----
container_commands:
01restart_nginx:
command: "service nginx restart"
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.
Konfigurasikan HTTPS untuk Ruby dengan Passenger
Untuk jenis kontainer Ruby yang menggunakan Passenger sebagai server aplikasi, Anda menggunakan file konfigurasi dan file JSON untuk mengaktifkan HTTPS.
Untuk mengonfigurasi HTTPS untuk Ruby dengan Passenger
-
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.
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.
contoh Snippet .ebextensions yang mengonfigurasi HTTPS untuk Ruby dengan Passenger
files: /etc/pki/tls/certs/server.crt: content: | -----BEGIN CERTIFICATE-----
certificate file contents
-----END CERTIFICATE----- /etc/pki/tls/certs/server.key: content: | -----BEGIN RSA PRIVATE KEY-----private key contents
# See note below. -----END RSA PRIVATE KEY-----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.
-
-
Buat file teks dan tambahkan JSON berikut ke file tersebut. Simpan file dalam direktori akar paket sumber Anda dengan nama
passenger-standalone.json
. File JSON ini mengonfigurasi Passenger untuk menggunakan HTTPS.penting
File JSON ini tidak boleh berisi tanda urutan byte (BOM). Jika JSON berisi tanda urutan byte, perpustakaan Passenger JSON tidak akan membaca file dengan benar dan layanan Passenger tidak akan dimulai.
contoh passenger-standalone.json
{ "ssl" : true, "ssl_port" : 443, "ssl_certificate" : "/etc/pki/tls/certs/server.crt", "ssl_certificate_key" : "/etc/pki/tls/certs/server.key" }
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.