Tuesday, June 25, 2013

Membuat Custom WebLogic Certificate

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
 $ 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.
http://publib.boulder.ibm.com/infocenter/tivihelp/v5r1/index.jsp?topic=%2Fcom.ibm.itim_a.infocenter.doc%2Fins_ldp_4648.htm
17. Untuk mengecek isi keystore, bisa gunakan command ini:
 $ 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.

1 comment: