Posting ini berisi langkah-langkah untuk membuat digital certificate pada server WebLogic menggunakan Symantec CA.
Generate Keystore and Certificate Signing Request
1. Dari server, masuk ke DOMAIN_HOME, defaultnya ada di Oracle/Middleware/user_projects/domains/<domain_name>/
2. Buat folder baru untuk menyimpan file-file certificate, lalu masuk ke dalamnya
3. Generate keystore:
4. Untuk meminta certificate dari third party, kita membutuhkan file .csr (Certificate Signing Request). oleh karena itu harus kita generate dulu:
Getting Certificate(s) from Third Party
5. berikutnya kita masuk ke websitenya third party yang menyediakan ssl certificate, dalam hal ini kita menggunakan symantec. http://www.symantec.com/verisign/ssl-certificates, pilih misalnya produk yang Secure Site Pro SSL Certificates, klik Try it free (pake yang gratisan aja lah ya).
6. Pada halaman Test Certificate, klik Continue.
7. Pada halaman Enter Technical Contact Form, isi semua informasi yang diperlukan. Pastikan emailnya terisi dengan bener karena nanti certificatenya akan dikirim via email. Continue.
8. di bagian Enter Certificate Signing Request (CSR), copy isi file certreq.csr tadi ke Paste Certificate Signing Request (CSR):
Perhatikan jumlah dash ( - ) nya. masing2 ada 5. Server platform pilih Apache.
Continue.
9. Accept saja Licensing Requirements, Continue.
10. Sampai di sini, kita menunggu email dari symantec (auth_support@websecurity.symantec.com), kira-kira isinya seperti ini:
11. Klik link yang di step 1. klik link di samping How to install the trial root CA certificate into <browser>, sesuai browsernya. Ikuti saja step2nya.
klik link Download Secure Site Trial Root Certificate, masuk ke halaman Root CA Certificates: Secure Site Trial Root Certificates, copy text yang ada di dalam kotak di bawah Trial Secure Server Root ke file rootca.crt (create new file di DOMAIN_HOME/certs/) mulai dari -----BEGIN CERTIFICATE----- sampai -----END CERTIFICATE-----
12. Klik link yang di step 2. Di halaman Intermediate CA Certificates: Secure Site Trial Intermediate Certificate, copy yg di dalem kotak Secure Site Trial Intermediate Certificate ke file intermediateca.crt (create new file di DOMAIN_HOME/certs/) mulai dari -----BEGIN CERTIFICATE----- sampai -----END CERTIFICATE-----
13. Copy text certificate yg ada di bagian bawah body email, mulai dari -----BEGIN CERTIFICATE----- sampai -----END CERTIFICATE----- ke file certificate.crt (create new file di DOMAIN_HOME/certs/)
14. Kenapa ada banyak certificatenya? Itu sebenernya dia bikin certificate chain, sebagai gambaran bisa dilihat di sini http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=%2Fcom.ibm.mq.csqzas.doc%2Fsy10600_.htm
Import Certificate(s) to Keystore
15. Yang akan kita daftarkan di WebLogic adalah keystorenya, dengan demikian semua certificate tadi harus kita import ke dalam keystore.jks yang telah kita buat di awal tadi.
Yang pertama, kita import dulu rootnya:
Berikutnya kita import intermediatenya:
Terakhir, kita import certificatenya yang akan diverifikasi oleh browser:
16. Perhatikan di step terakhir di atas, alias yang digunakan harus sama dengan alias pada saat membuat keystore ini pertama kali (yaitu pada poin nomer 3). Hal ini diperlukan karena pada keystore.jks, yang menjadi private key adalah alias yang digunakan pada saat menggenerate keystore tersebut.
18. Berdasarkan langkah-langkah import di atas, seharusnya di dalam keystore.jks sekarang terdapat 3 entry, dimana alias certificate memiliki Entry type: PrivateKeyEntry, sedangkan 2 alias lainnya memiliki Entry type: trustedCertEntry.
Setup WebLogic Keystore and SSL Configuration
19. Masuk WebLogic console, di bagian Environment, klik Servers
20. Di dalam Configurations, klik server yang akan di-enable SSL-nya. Misalnya AdminServer.
di dalam Settings for AdminServer, pilih tab Configuration/General. Pastikan SSL Listen Port dicontreng, masukkan listen portnya, misalnya 7002. Save.
Sampai di sini kita diminta restart server, boleh sekarang, boleh nanti. Masih ada step berikutnya.
21. Pindah ke tab Configuration/Keystores.
Ganti Keystores dengan Custom Identity and Custom Trust. Pada input custom identity keystore dan custom trust keystore, masukkan alamat file keystore.jks tadi (full address).
keystore type = jks,
keystore passphrase disamakan dengan storepass tadi. Save.
22. Pindah ke tab Configuration/SSL.
Private key alias = certificate (disamakan dengan alias saat genkey tadi)
Private key passphrase disamakan dengan keypass tadi. Save.
23. Jika tadi udah restart server, maka konfigurasi selanjutnya tidak perlu restart lagi. Tapi kalau tadi belum, sekarang harus di-restart.
24. Silakan tes diakses dari browser https://<domain_name>:7002/console.
25. Done.
Generate Keystore and Certificate Signing Request
1. Dari server, masuk ke DOMAIN_HOME, defaultnya ada di Oracle/Middleware/user_projects/domains/<domain_name>/
2. Buat folder baru untuk menyimpan file-file certificate, lalu masuk ke dalamnya
$ mkdir certs
$ cd certs
3. Generate keystore:
$ keytool -genkey -alias certificate -keyalg RSA -keysize 2048 -keypass aliaspass -keystore keystore.jks -storepass keystorepass -validity 365
Isi pertanyaan-pertanyaan berikutnya. untuk first and last name diisi dengan nama domain yang akan di beri certificate.4. Untuk meminta certificate dari third party, kita membutuhkan file .csr (Certificate Signing Request). oleh karena itu harus kita generate dulu:
$ keytool -certreq -v -alias certificate -file certreq.csr -keystore keystore.jks
Getting Certificate(s) from Third Party
5. berikutnya kita masuk ke websitenya third party yang menyediakan ssl certificate, dalam hal ini kita menggunakan symantec. http://www.symantec.com/verisign/ssl-certificates, pilih misalnya produk yang Secure Site Pro SSL Certificates, klik Try it free (pake yang gratisan aja lah ya).
6. Pada halaman Test Certificate, klik Continue.
7. Pada halaman Enter Technical Contact Form, isi semua informasi yang diperlukan. Pastikan emailnya terisi dengan bener karena nanti certificatenya akan dikirim via email. Continue.
8. di bagian Enter Certificate Signing Request (CSR), copy isi file certreq.csr tadi ke Paste Certificate Signing Request (CSR):
Perhatikan jumlah dash ( - ) nya. masing2 ada 5. Server platform pilih Apache.
Continue.
9. Accept saja Licensing Requirements, Continue.
10. Sampai di sini, kita menunggu email dari symantec (auth_support@websecurity.symantec.com), kira-kira isinya seperti ini:
ORDER NUMBER: 658084139
COMMON NAME: NOSTRA-SOA.NOSTRATECH.COM
Dear Bergas Bimo,
Congratulations! Symantec has approved your request for a Trial SSL Certificate, and is included at the end of this email.
In order for your Trial SSL Certificate to function properly, perform all the 3 steps below:
Step 1. Download and install the Test Root CA Certificate.
Open the link below and follow the steps to install the Root certificate in your internet browser:
https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=SO10670
Step 2. Download the Trial SSL Intermediate CA Certificate.
To download the Trial Intermediate CA on each Web server you are testing with, go to:
https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=AR1737
......
Thank you for your interest in Symantec!
-----BEGIN CERTIFICATE-----
MIIFtzCCBJ+gAwIBAgIQXdl63jyVZ8zlbeZX4eCNYDANBgkqhkiG9w0BAQUFADCB
yzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTAwLgYDVQQL
EydGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiAgTm8gYXNzdXJhbmNlcy4xQjBABgNV
BAsTOVRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vY3Bz
L3Rlc3RjYSAoYykwOTEtMCsGA1UEAxMkVmVyaVNpZ24gVHJpYWwgU2VjdXJlIFNl
cnZlciBDQSAtIEcyMB4XDTEzMDYyNTAwMDAwMFoXDTEzMDcyNTIzNTk1OVowgdIx
CzAJBgNVBAYTAklEMRQwEgYDVQQIEwtES0kgSmFrYXJ0YTEYMBYGA1UEBxQPSmFr
YXJ0YSBTZWxhdGFuMSAwHgYDVQQKFBdOb3N0cmEgU29sdXNpIFRla25vbG9naTER
MA8GA1UECxQIRW5naW5lZXIxOjA4BgNVBAsUMVRlcm1zIG9mIHVzZSBhdCB3d3cu
dmVyaXNpZ24uY29tL2Nwcy90ZXN0Y2EgKGMpMDUxIjAgBgNVBAMUGW5vc3RyYS1z
b2Eubm9zdHJhdGVjaC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQCn0+adf6Fg6ZQaFqkfto6ApyuPrqjyqJTDCIJFPuERdAE8z01WvDgDM2YXinOj
cgBGpOcUd97LWGD0UABNz17L1ydYhOMlmJ6j61f69ZgkMwrh3Zfg4g0R8Q4HXqdb
REWVIsc94O6/mtsDpP/K1seIKG/17L5pogW593dP2hHMqhzM8NGz31lduA/1JNRb
j9bu5OahG7Nwfe3dfujbZSSN+L8nSQefqVWBNzu0k4Tnse7CejcGatIwjHDYQ/iL
BwPzEQPO5YXWnv7XzFH2sauvn0WEVuCenArZ/re2W3XSf1P0xhXLoTeBdfoyXOnA
EoB9BE/VGXHDpQd9fD5l9uHBAgMBAAGjggGMMIIBiDAkBgNVHREEHTAbghlub3N0
cmEtc29hLm5vc3RyYXRlY2guY29tMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgWg
MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9TVlJUcmlhbC1HMi1jcmwudmVyaXNp
Z24uY29tL1NWUlRyaWFsRzIuY3JsMEoGA1UdIARDMEEwPwYKYIZIAYb4RQEHFTAx
MC8GCCsGAQUFBwIBFiNodHRwczovL3d3dy52ZXJpc2lnbi5jb20vY3BzL3Rlc3Rj
YTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUKBcT
ir3WorXcBiy3to7aEGZgbuUwdAYIKwYBBQUHAQEEaDBmMCQGCCsGAQUFBzABhhho
dHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly9TVlJU
cmlhbC1HMi1haWEudmVyaXNpZ24uY29tL1NWUlRyaWFsRzIuY2VyMA0GCSqGSIb3
DQEBBQUAA4IBAQAmGBd6Yvh3ksl9lTIqm6EULJkoc6+WYMo8ziCmJZx1PsfVs5IR
TY8ugNnrSmFAh4UMVcpjfCLC1tQwlEcDntdbL1eCXjksDy7fk8drBsyR0ykW4RFh
+JCY77Odxx6ywa0c51taSgGA74H4qZmYBQk8QQweqiEJtxq1IiNe9V5IjhG4J/yg
C59cfAhlURC4FACqLY/2GCy7Mo/aUWgiDmw3S2JYVeXCxAi7MsApR4DpywWfVUof
k+1q8AuqYMRQFE1k/xSR3bk8w4/9ofYYhor+N0U+Zvc/38COROVmNjLtHV5mRVFm
AkkYXKDA5OSd9ea0ItVZGFG+Z+8eLJS915r1
-----END CERTIFICATE-----
.....
11. Klik link yang di step 1. klik link di samping How to install the trial root CA certificate into <browser>, sesuai browsernya. Ikuti saja step2nya.
klik link Download Secure Site Trial Root Certificate, masuk ke halaman Root CA Certificates: Secure Site Trial Root Certificates, copy text yang ada di dalam kotak di bawah Trial Secure Server Root ke file rootca.crt (create new file di DOMAIN_HOME/certs/) mulai dari -----BEGIN CERTIFICATE----- sampai -----END CERTIFICATE-----
12. Klik link yang di step 2. Di halaman Intermediate CA Certificates: Secure Site Trial Intermediate Certificate, copy yg di dalem kotak Secure Site Trial Intermediate Certificate ke file intermediateca.crt (create new file di DOMAIN_HOME/certs/) mulai dari -----BEGIN CERTIFICATE----- sampai -----END CERTIFICATE-----
13. Copy text certificate yg ada di bagian bawah body email, mulai dari -----BEGIN CERTIFICATE----- sampai -----END CERTIFICATE----- ke file certificate.crt (create new file di DOMAIN_HOME/certs/)
14. Kenapa ada banyak certificatenya? Itu sebenernya dia bikin certificate chain, sebagai gambaran bisa dilihat di sini http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=%2Fcom.ibm.mq.csqzas.doc%2Fsy10600_.htm
Import Certificate(s) to Keystore
15. Yang akan kita daftarkan di WebLogic adalah keystorenya, dengan demikian semua certificate tadi harus kita import ke dalam keystore.jks yang telah kita buat di awal tadi.
Yang pertama, kita import dulu rootnya:
$ keytool -importcert -v -noprompt -trustcacerts -alias rootcacert -file rootca.crt -keystore keystore.jks
Berikutnya kita import intermediatenya:
$ keytool -importcert -v -alias intermediatecacert -file intermediateca.crt -keystore keystore.jks
Terakhir, kita import certificatenya yang akan diverifikasi oleh browser:
$ keytool -importcert -v -alias certificate -file certificate.crt -keystore keystore.jks
16. Perhatikan di step terakhir di atas, alias yang digunakan harus sama dengan alias pada saat membuat keystore ini pertama kali (yaitu pada poin nomer 3). Hal ini diperlukan karena pada keystore.jks, yang menjadi private key adalah alias yang digunakan pada saat menggenerate keystore tersebut.
Public key encryption requires that a public key and a private key be generated for an application. Data encrypted with the public key can only be decrypted using the corresponding private key. Data encrypted with the private key can only be decrypted using the corresponding public key. The private key is stored in a key database file that is password-protected. Only the owner of the private key can access the private key to decrypt messages that are encrypted using the corresponding public key.17. Untuk mengecek isi keystore, bisa gunakan command ini:
http://publib.boulder.ibm.com/infocenter/tivihelp/v5r1/index.jsp?topic=%2Fcom.ibm.itim_a.infocenter.doc%2Fins_ldp_4648.htm
$ keytool -list -v -keystore keystore.jks
18. Berdasarkan langkah-langkah import di atas, seharusnya di dalam keystore.jks sekarang terdapat 3 entry, dimana alias certificate memiliki Entry type: PrivateKeyEntry, sedangkan 2 alias lainnya memiliki Entry type: trustedCertEntry.
Setup WebLogic Keystore and SSL Configuration
19. Masuk WebLogic console, di bagian Environment, klik Servers
20. Di dalam Configurations, klik server yang akan di-enable SSL-nya. Misalnya AdminServer.
di dalam Settings for AdminServer, pilih tab Configuration/General. Pastikan SSL Listen Port dicontreng, masukkan listen portnya, misalnya 7002. Save.
Sampai di sini kita diminta restart server, boleh sekarang, boleh nanti. Masih ada step berikutnya.
21. Pindah ke tab Configuration/Keystores.
Ganti Keystores dengan Custom Identity and Custom Trust. Pada input custom identity keystore dan custom trust keystore, masukkan alamat file keystore.jks tadi (full address).
keystore type = jks,
keystore passphrase disamakan dengan storepass tadi. Save.
22. Pindah ke tab Configuration/SSL.
Private key alias = certificate (disamakan dengan alias saat genkey tadi)
Private key passphrase disamakan dengan keypass tadi. Save.
23. Jika tadi udah restart server, maka konfigurasi selanjutnya tidak perlu restart lagi. Tapi kalau tadi belum, sekarang harus di-restart.
24. Silakan tes diakses dari browser https://<domain_name>:7002/console.
25. Done.