How to Configure Jenkins HTTPS
Secara default jenkins dapat diakses menggunakan port 8080 misalnya http://localhost:8080. Bagaimana merubah jenkins agar dapat diakses melalui HTTPS agar lebih aman.
Certificate HTTPS SSL pada web umumnya menggunakan ca.crt ca.key atau .pem sedangkan untuk jenkins ini sendiri adalah menggunakan .jks (Java KeyStore) kurang lebih seperti itu.
Saya tidak menerangkan bagaimana membuat .crt .key dan .pem disini diasumsikan Anda sudah mempunya certificate tersebut. Karena langkah awal ada melakukan convert certificate ssl.
Convert ke .P12
Berikut perintah untuk convert ke .P12
openssl pkcs12 -export -out jenkins.p12 -inkey certificate.key -in certificate.crt -name "jenkins-cert"
password diisi minimal 6 karakter.
Akan terbentuk file baru yaitu jenkins.p12
Convert .P12 ke JKS
Berikut perintah untuk melakukan convert
keytool -importkeystore -srckeystore jenkins.p12 -srcstoretype pkcs12 -destkeystore keystore.jks
Catatan:
Password lebih baik disamakan pada convert p12 maupun convert jks, agar tidak bingung
Langkah selanjutnya edit configure jenkins
vim /lib/systemd/system/jenkins.service
tambahkan berikut
Environment="JENKINS_HTTPS_LISTEN_ADDRESS=0.0.0.0"
Environment="JENKINS_HTTPS_PORT=8443"
Environment="JENKINS_HTTPS_KEYSTORE=/var/lib/jenkins/ssl/keystore.jks"
Environment="JENKINS_HTTPS_KEYSTORE_PASSWORD=passwordsaatconvert"
Restart Jenkins service
systemctl daemon-reload
systemctl restart jenkins.service
Disaat ini https sudah bisa digunakan, akan tetapi port default jenkins 8080 masih bisa diakses. Untuk melakukan disable port 8080, tambah baris berikut
Environment="JENKINS_PORT=-1"
Tambahan:
Bila gitlab menggunakan https misalkan https://gitlab.memoku.id, harus menambahan certificate ssl didalam server jenkins
cp memoku.id.crt /usr/local/share/ca-certificates/
cp memoku.id.pem /etc/ssl/certs/
update certificate
update-ca-certificates