Menyiapkan sertifikat SSL untuk WSO2 API Manager tidaklah mudah, karena memerlukan pembuatan Keystore dan menambahkan sertifikat SSL ke Keystore. Dalam artikel ini, kita akan melihat cara mengatur WSO2 dengan sertifikat Let's Encrypt.
Saya berasumsi bahwa Anda sudah memiliki sertifikat Let's Encrypt yang diterbitkan dan siap untuk menambahkannya ke WSO2 Keystores. Jika tidak, lanjutkan dan dapatkan satu untuk domain Anda. Dalam kasus saya, saya memiliki server NGINX front-end layanan WSO2, maka saya telah memperoleh sertifikat Let's Encrypt menggunakan certbot
program untuk server web NGINX.
$ sudo certbot --nginx -d tg.com -d www.tg.com
Setelah sertifikat diterbitkan, Anda akan menemukan .pem
file di bawah ‘/etc/letsencrypt/live/<domain_name>/
' folder. Sekarang salin cert.pem
dan privkey.pem
file ke direktori home Anda dan ikuti langkah-langkah di bawah ini.
Bagaimana cara menyiapkan WSO2 dengan sertifikat Let's Encrypt?
Langkah 1:Buat file PKCS12/PFX menggunakan cert.pem
dan privkey.pem
file.
Kami akan menggunakan perintah OpenSSL untuk mengekspor sertifikat ke format PKCS12/PFX dan mengamankannya dengan kata sandi yang kuat saat diminta.
$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfxCatatan:
-nama opsi mengambil alias sebagai nilai. Alias dapat berupa nama apa pun dan diperlukan untuk menggunakannya di file konfigurasi WSO2 nanti.
Langkah 2:Membuat Java Keystore
Setelah file PFX siap, buat Java Keystore menggunakan perintah di bawah ini.
$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS
Agar perintah di atas berfungsi, Anda harus menginstal JDK (tentu saja, Anda sudah menyiapkan Pengaturan WSO2). Perintah keytool
akan ditempatkan di dalam bin
direktori JDK.
Perintah di atas akan meminta kata sandi dari Keystore sumber dan Keystore tujuan.
Langkah 3:Ekspor kunci publik dari file Java Keystore.
WSO2 hadir dengan toko kepercayaan publik (client-truststore.jks
) dan file ini perlu diperbarui dengan kunci publik dari file JKS yang dibuat pada langkah 2.
Jadi mari kita lanjutkan dan ekspor kunci publik dari letsencrypt.jks
mengajukan. Untuk melakukannya, jalankan perintah di bawah ini.
$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pemCatatan:
Ingatlah untuk menggunakan alias yang sama ‘letsencrypt
' yang telah Anda atur di langkah 1.
Langkah 4 :Pindahkan letsencrypt.jks
dan letsencrypt.pem
file ke direktori berikut.
$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/securityCatatan:
WSO2_APIM harus diganti dengan direktori penginstalan WSO2.
Langkah 5: Tambahkan kunci publik ke client-truststore.jks
$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbonCatatan:
-storepass mengambil nilai sebagai wso2carbon
, yang merupakan sandi default dari penyimpanan kepercayaan klien.
Langkah 6:Konfigurasikan Keystore dengan WSO2 API Manager.
Konfigurasikan WSO2 API Manager dengan Keystore baru yang dibuat di langkah 2. Untuk melakukannya, file berikut perlu diedit.
Beberapa versi WSO2 memerlukan carbon.xml
file yang akan diedit, tetapi versi terbaru hanya memerlukan deployment.toml
file yang akan diubah (karena WSO2 berhasil menyederhanakan model konfigurasi).
$ vi <WSO2_APIM>/repository/conf/carbon.xml
Cari <KeyStore>
tag dan ganti dengan yang di bawah ini.
<KeyStore> <!-- Keystore file location--> <Location>${carbon.home}/repository/resources/security/letsencrypt.jks</Location> <!-- Keystore type (JKS/PKCS12 etc.)--> <Type>JKS</Type> <!-- Keystore password--> <Password><Keystore password></Password> <!-- Private Key alias--> <KeyAlias>letsencrypt</KeyAlias> <!-- Private Key password--> <KeyPassword><Keystore password></KeyPassword> </KeyStore>Catatan:
Ingatlah untuk menggunakan sandi Keystore dan alias yang sama saat membuat file JKS di langkah 2
Ubah deployment.toml
file dengan detail Keystore baru:
$vi <WSO2_APIM>/repository/conf/deployment.toml
[keystore.tls] file_name = "letsencrypt.jks" type = "JKS" password = "<Keystore password>" alias = "letsencrypt" key_password = "<Keystore password>"
Saya kira memodifikasi deployment.toml
harus cukup. Namun, jika semuanya tidak langsung berfungsi, Anda dapat mengedit file di bawah ini (mungkin diperlukan untuk versi WSO2 API Manager yang lebih lama).
$ cd <WSO2_APIM>/repository/conf/ $ grep -rn "*.jks"
Edit semua file yang terdaftar dengan entri Keystore yang relevan.
Sekarang lanjutkan dan mulai ulang server WSO2.
$ <WSO_APIM>/bin/api-manager.sh --restart
Langkah 7 :Masuk ke antarmuka Carbon dan periksa apakah Keystore baru berhasil ditambahkan. Klik Keystores > List.
Langkah 8: Jika Anda tidak menemukan Keystore, Anda dapat menambahkannya secara manual dengan mengklik Keystores > Add
.
Itu dia! Sekarang Anda akan melihat gembok hijau di sebelah URL WSO2 di bilah alamat browser.
Masih punya masalah? Anda mungkin perlu melihat referensi berikut.
- Menyiapkan WSO2 dengan sertifikat yang valid
- Mengimpor sertifikat SSL ke WSO2 Keystores