Penginstalan default aplikasi Looker menggunakan sertifikat SSL yang ditandatangani sendiri untuk HTTPS. Untuk lingkungan produksi instance yang dihosting pelanggan, sebaiknya instal sertifikat SSL dari vendor tepercaya.
Untuk menggunakan sertifikat SSL dengan Looker, Anda harus membuat keystore Java dengan sertifikat dan kunci Anda.
Anda akan memiliki file berikut:
- File sertifikat bernama
looker.pem
yang berisi sertifikat utama Anda - File kunci terkait bernama
looker.key
- Secara opsional, file rantai Certificate Authority (CA) perantara bernama
ca.pem
File
.pem
Anda tidak perlu berisi root certificate.
Menginstal sertifikat
Semua file ini harus ada di direktori yang sama. Nilai defaultnya adalah /home/looker/looker/.ssl
.
Buat direktori baru dan jadikan direktori saat ini:
mkdir /home/looker/looker/.ssl cd /home/looker/looker/.ssl
Pilih sandi untuk keystore dan masukkan ke file bernama
.keystorepass
:echo "some_password_here" > .keystorepass
Jika Anda memiliki file CA, tambahkan ke akhir file sertifikat Anda:
echo >> looker.pem cat ca.pem >> looker.pem
Konversikan sertifikat dan kunci ke keystore
pkcs12
:openssl pkcs12 -export \ -in looker.pem \ -inkey looker.key \ -out importme.p12
Anda akan diminta untuk memasukkan sandi ekspor. Gunakan perintah yang Anda masukkan ke file
.keystorepass
di atas.Konversikan keystore pkcs12 menjadi keystore Java:
keytool -importkeystore \ -srckeystore importme.p12 \ -destkeystore looker.jks \ -srcstoretype pkcs12 \ -alias 1
Anda akan diminta untuk memasukkan sandi keystore baru dan sandi keystore pkcs12. Tetap gunakan kode di file
.keystorepass
.Buat file bernama
lookerstart.cfg
dalam direktori yang sama denganlooker.jar
Anda. File ini akan mengonfigurasi opsi Looker yang diperlukan setiap kali Looker dimulai. File harus berisi:
LOOKERARGS="--ssl-keystore=/home/looker/looker/.ssl/looker.jks --ssl-keystore-pass-file=/home/looker/looker/.ssl/.keystorepass"
Validasi sertifikat
Setelah Looker berjalan, Anda dapat memverifikasi bahwa sertifikat telah diinstal dengan benar menggunakan OpenSSL s_client
.
openssl s_client -connect localhost:9999
Jika nama host adalah looker.yourdomain.com
, Anda akan melihat baris di output seperti ini:
subject=/OU=Domain Control Validated/CN=looker.yourdomain.com
Cara lain untuk memeriksa adalah dengan wget
. Pengujian ini dapat dilakukan dari host mana pun yang memiliki akses jaringan ke instance Looker Anda melalui HTTPS.
Pada Looker yang menggunakan sertifikat default yang ditandatangani sendiri, output-nya akan menampilkan nama umum sertifikat self-signed.looker.com
:
$ wget https://looker.yourdomain.com:9999
--2014-12-31 12:06:03-- https://looker.yourdomain.com:9999/
Resolving looker.yourdomain.com (looker.yourdomain.com)... 192.168.23.66
Connecting to looker.yourdomain.com (looker.yourdomain.com)|192.168.23.66|:9999... connected.
ERROR: cannot verify looker.yourdomain.com's certificate, issued by '/CN=self-signed.looker.com':
Self-signed certificate encountered.
ERROR: certificate common name 'self-signed.looker.com' doesn't match requested host name 'looker.yourdomain.com'.
To connect to looker.yourdomain.com insecurely, use `--no-check-certificate'.
Pada Looker yang menggunakan sertifikat dari certificate authority, nama umum sertifikat harus cocok dengan nama DNS yang digunakan klien untuk mengakses Looker (atau sertifikat karakter pengganti yang setara).
Berikut adalah contoh server yang menggunakan sertifikat "asli" (ditandatangani tanpa diri sendiri):
$ wget https://looker.yourdomain.com:9999
--2014-12-31 12:06:47-- https://looker.yourdomain.com:9999/
Resolving looker.yourdomain.com (looker.yourdomain.com)... 10.10.10.10
Connecting to looker.yourdomain.com (looker.yourdomain.com)|10.10.10.10|:9999... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://looker.yourdomain.com:9999/login [following]
--2014-12-31 12:06:48-- https://looker.yourdomain.com:9999/login
Connecting to looker.yourdomain.com (looker.yourdomain.com)|10.10.10.10|:9999... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3491 (3.4K) [text/html]
Saving to: 'index.html'
100%[====================================================>] 3,491 --.-K/s in 0.07s
2014-12-31 12:06:48 (50.5 KB/s) - 'index.html' saved [3491/3491]
Memvalidasi sertifikat situs terhadap paket CA
Mulai Looker 5.18, Looker menggunakan paket root certificate Java Certificate Authority (CA). Looker menggunakan paket CA untuk memverifikasi keaslian host yang berkomunikasi dengannya saat membuat permintaan keluar dari server Looker. Hal ini termasuk tindakan seperti membuat permintaan ke webhook keluar, melakukan pencadangan S3, meminta berbagai bentuk autentikasi, dan berkomunikasi dengan server verifikasi lisensi.
Java menyediakan dan mengelola paket CA, yang berada di disk. Hal ini memungkinkan admin instance Looker yang dihosting pelanggan untuk menambahkan atau menghapus sertifikat dari paket CA.
Jika memilih untuk mengubah paket CA, Anda dapat menggunakan utilitas test_ssl_cert_validation
Looker untuk menguji apakah Looker dapat memvalidasi sertifikat server saat membuat koneksi HTTP keluar atau tidak. Alat ini menerima nama file yang berisi daftar URL yang ingin Anda uji, dengan satu URL per baris, seperti ini:
https://www.google.com
https://looker.com
https://wrong.host.badssl.com/
Jika nama file ini adalah hosts
, Anda akan menggunakan test_ssl_cert_validation
seperti ini:
$ ./looker test_ssl_cert_validation hosts
Output test_ssl_cert_validation
akan terlihat seperti ini:
Using CA file from .../jre/lib/security/cacerts
Attempting connection to https://www.google.com
Certificate verified successfully, connection returned with:
HTTP/1.1 200 OK
Attempting connection to https://looker.com
Certificate verified successfully, connection returned with:
HTTP/1.1 200 OK
Attempting connection to https://wrong.host.badssl.com/
Error connecting to https://wrong.host.badssl.com/: OpenSSL::SSL::SSLError: hostname
"wrong.host.badssl.com" does not match the server certificate
Summary:
Successes: 3, Redirects: 0, Failures: 1
Menonaktifkan protokol SSL yang tidak aman
Jika perlu menghapus TLS yang tidak aman demi kepatuhan keamanan, tambahkan baris ini ke file $JAVA_HOME/lib/security/java.security
Anda:
none
jdk.tls.disabledAlgorithms=SSLv2Hello, SSLv3, TLSv1, TLSv1.1, 3DES_EDE_CBC
Langkah berikutnya
Setelah menyiapkan sertifikat SSL, Anda akan siap untuk menambahkan penerusan port agar URL yang lebih bersih.