โพสต์นี้อธิบายวิธีกำหนดค่า SSL บน Oracle® WebLogic® Server 12c (12.1.2)
ภาพรวม
ความปลอดภัยของข้อมูลและสารสนเทศเป็นปัญหาหลักในโลกปัจจุบัน แอปพลิเคชันต่างๆ ใช้โปรโตคอล Secure Socket Layer (SSL) เพื่อการสื่อสารที่ปลอดภัยผ่านเครือข่าย อันที่จริง มันเป็นหนึ่งในโปรโตคอลการสื่อสารเครือข่ายที่ใช้กันอย่างแพร่หลายมากที่สุด
WebLogic Server กำหนดค่าให้ใช้ SSL ให้ทั้ง การตรวจสอบตัวตน และการเข้ารหัสข้อมูลระหว่างทาง สำหรับการเชื่อมต่อระหว่างสองแอปพลิเคชัน ดังนั้น สองแอปพลิเคชันที่โต้ตอบกันผ่าน SSL จะได้รับผลประโยชน์ในการเชื่อมต่อที่ปลอดภัยดังต่อไปนี้:
- พวกเขาตรวจสอบตัวตนของกันและกันโดยใช้ใบรับรอง SSL ส่วนบุคคล
- แลกเปลี่ยนข้อมูลที่เข้ารหัส (ระหว่างทาง) ระหว่างโปรแกรมแอปพลิเคชันทั้งสอง
กลไกคำขอและการตอบสนองการเชื่อมต่อ SSL เพิ่มโอเวอร์เฮดในการประมวลผลของข้อมูลเพิ่มเติมและข้อมูลเกี่ยวกับการรับรองความถูกต้อง และต้องการการประมวลผลอัลกอริทึมการเข้ารหัสที่ซับซ้อน ดังนั้น คนส่วนใหญ่มักไม่ได้ใช้ในอินสแตนซ์ของเซิร์ฟเวอร์ Weblogic ที่ทำงานใน โหมดการพัฒนา ภายในโครงสร้างพื้นฐานเครือข่ายที่มีความปลอดภัยสูง อย่างไรก็ตาม การกำหนดค่า SSL เป็นที่ต้องการอย่างมากสำหรับอินสแตนซ์เซิร์ฟเวอร์ Weblogic ที่ทำงานในโหมดการผลิต .
การสาธิตการกำหนดค่า
โพสต์นี้ครอบคลุมขั้นตอนในการกำหนดค่า SSL บนเซิร์ฟเวอร์ Weblogic ที่ติดตั้งล่วงหน้าบน MYPROD_AdminServer และ เซิร์ฟเวอร์ที่มีการจัดการ อินสแตนซ์ใน MYPROD_DOMAIN ตัวจัดการโหนดโดเมน
ในการดำเนินการนี้ ให้สร้างที่เก็บคีย์ข้อมูลประจำตัวใหม่และที่เก็บคีย์ที่เชื่อถือได้ใหม่เพื่อเก็บใบรับรองที่ลงนามใหม่ ดังนั้น ผู้ดูแลระบบ WebLogic อินสแตนซ์เซิร์ฟเวอร์ที่มีการจัดการทั้งหมด และ NodeManager จะสื่อสารโดยใช้โปรโตคอล SSL ตามที่เก็บคีย์ที่กำหนดเอง
ใช้ขั้นตอนต่อไปนี้เพื่อกำหนดค่า SSL บนอินสแตนซ์เซิร์ฟเวอร์ WebLogic ที่มีอยู่:
ขั้นตอนที่ 1:สร้างที่เก็บคีย์ข้อมูลประจำตัว
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างที่เก็บคีย์ข้อมูลประจำตัว MYPRODIdentity.jks บนmyprodserver.mydomain.local เซิร์ฟเวอร์:
(a) ล็อกอินเข้าสู่เชลล์เซิร์ฟเวอร์ WebLogic Server Linux® ในฐานะผู้ใช้แอปพลิเคชัน WebLogic (เช่น Oracle
) และเรียกใช้รหัสต่อไปนี้เพื่อสร้างโฟลเดอร์ใหม่
[oracle@myprodserver]$ mkdir -p /u01/Middleware/user_projects/domains/MYPROD_DOMAIN/keystores
(b) ตั้งค่าMYPROD_DOMAIN
และสร้างที่เก็บคีย์ใหม่:
[oracle@myprodserver]$ cd /u01/Middleware/user_projects/domains/MYPROD_DOMAIN/bin
[oracle@myprodserver]$ . ./setDomainEnv.sh
[oracle@myprodserver]$ cd keystores
[oracle@myprodserver]$ keytool -genkeypair -alias mywlsprodcert -keyalg RSA -keysize 1024 -dname "CN=*.mydomain.local,OU=<Organization>,O=<Company>,L=<City>,S=<State>,C=<US>" -keystore MYPRODIdentity.jks
Enter keystore password: <Type a new keyStorePass>
Re-enter new password: <Re-type the keyStorePass>
Enter key password for <mywlsprodcert> (RETURN if same as keystore password): <ENTER>
ขั้นตอนที่ 2:สร้าง CSR ใหม่
ทำตามขั้นตอนต่อไปนี้เพื่อสร้าง Certificate Signing Request (CSR) ใหม่โดยใช้MYPRODIdentity.jks :
(a) เรียกใช้รหัสต่อไปนี้เพื่อใช้ keytool
ยูทิลิตี้เพื่อสร้าง CSR:
[oracle@myprodserver]$ keytool -certreq -v -alias prodcert -file MYWLSPRODCert.csr -keystore MYPRODIdentity.jks
Enter keystore password: <KeyStorePass>
Certification request stored in file <MYWLSPRODCert.csr>
(b) ส่ง Certificate Signing Request (CSR) ที่สร้างขึ้นใหม่ไปยัง Certificate AuthorityCA) หลังจากลงนามใน CSR แล้ว CA จะจัดเตรียมใบรับรองดิจิทัลและคีย์ส่วนตัวของใบรับรอง
หมายเหตุ :สำหรับการสาธิตนี้ เราใช้ WebLogic Demo CA (CertGenCA.der) เพื่อลงนามในใบรับรอง คุณลักษณะการลงนามในตัวอย่างด้วยตนเองนี้สามารถใช้ได้กับเซิร์ฟเวอร์ WebLogic ในการใช้งานจริง คุณควรได้รับใบรับรองเซิร์ฟเวอร์ที่ลงนามโดย CA ที่เชื่อถือได้และกำหนดโดยองค์กรของคุณ
ขั้นตอนที่ 3:ลงชื่อใน CSR ด้วยตนเอง
ทำตามขั้นตอนต่อไปนี้เพื่อลงนาม CSR ด้วยตนเองโดยใช้ WebLogic demo CA (CertGenCA.der) และนำเข้าไปยังที่เก็บคีย์เอกลักษณ์ที่สร้างขึ้นใหม่:
(ก) เรียกใช้รหัสต่อไปนี้เพื่อลงนามในใบรับรองด้วยตนเอง:
[oracle@myprodserver]$ java utils.CertGen -keyfile MYPRODCertPrivateKey -keyfilepass password -certfile mywlsprodcert -cn "*.my.local"
Generating a certificate with wildcard *.domain.local and key strength 1024
/u01/Middlewaree/wlserver_12.1/server/lib/CertGenCA.der file and key from /u01/Middlewaree/wlserver_12.1/server/lib/CertGenCAKey.der file
[oracle@myprodserver]$
(b) นำเข้าใบรับรองเซิร์ฟเวอร์และคีย์ส่วนตัวที่สร้างขึ้นใหม่ไปยังที่เก็บคีย์ที่สร้างไว้ก่อนหน้านี้:
[oracle@myprodserver]$ java utils.ImportPrivateKey -keystore MYPRODIdentity.jks -keyfile MYPRODCertPrivateKey.pem -keyfilepass <password> -certfile MYPRODCert.pem -storepass <keyStorePass> -alias mywlsprodcert
ขั้นตอนที่ 4:สร้างที่เก็บคีย์
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างที่เก็บคีย์ของ trust แบบกำหนดเองบน myprodserver.mydomain.local เครื่อง:
(a) สร้าง MYPRODTrust.jks ที่เก็บคีย์โดยทำสำเนาจาก Standard Java Trust:
[oracle@myprodserver]$ cp /u01/java/jre/lib/security/cacerts
/u01/Middleware/user_projects/domains/MYPROD_DOMAIN/keystores/MYPRODTrust.jks
(b) เปลี่ยนค่าเริ่มต้น cacerts รหัสผ่าน. ค่าเริ่มต้นคือ changeit
. อัปเดตเป็นรหัสผ่านใหม่ที่คุณเลือก:
[oracle@myprodserver]$ keytool -storepasswd -keystore MYPRODTrust.jks
Enter keystore password: <defaultKeyStorePass>
New keystore password: <NewKeyStorePass>
Re-enter new keystore password: <Re-type NewKeyStorePass>
(c) นำเข้าใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นใหม่ไปยังที่เก็บคีย์ที่เชื่อถือได้ที่เพิ่งสร้าง:
[oracle@myprodserver]$ keytool -import -v -trustcacerts -alias rootCA -file /u01/Middleware/wlserver_12.1/server/lib/CertGenCA.der -keystore MYPRODTrust.jks
ขั้นตอนที่ 5:คัดลอกใบรับรอง SSL ไปยังเซิร์ฟเวอร์อื่นทั้งหมดในโดเมน
เนื่องจากคุณใช้ใบรับรอง SSL บนไวด์การ์ดแทนชื่อเซิร์ฟเวอร์เฉพาะ เซิร์ฟเวอร์ทั้งหมดใน MYPROD_DOMAIN สามารถใช้ใบรับรองเดียวกันได้
ดังนั้น ให้คัดลอกไดเร็กทอรีที่เก็บคีย์ที่สร้างไว้ก่อนหน้านี้/u01/Middleware/user_projects/domains/MYPROD_DOMAIN/keystores ซึ่งมีใบรับรองที่จำเป็นสำหรับเซิร์ฟเวอร์ WebLogic ทั้งหมดที่แชร์โดย MYPROD_DOMAIN .
ขั้นตอนที่ 6:กำหนดค่า WebLogic Node Manager
ทำตามขั้นตอนต่อไปนี้เพื่อกำหนดค่า WebLogic Node Manager เพื่อใช้ใบรับรอง SSL ที่สร้างขึ้นใหม่:
(a) อัปเดตตัวแปรต่อไปนี้ใน $WL_HOME/common/nodemanager/nodemanager.properties ไฟล์:
KeyStores=CustomIdentityAndCustomTrust
CustomIdentityKeyStoreFileName=/u01/Middleware/user_projects/domains/MYPROD_DOMAIN/keystores/MYPRODIdentity.jks
CustomIdentityKeyStorePassPhrase=<NewKeyStorePass>
CustomIdentityAlias=mywlsprodcert
CustomIdentityPrivateKeyPassPhrase=<PrivateKeyPassword>
(b) ปิดเครื่องและเริ่ม Node Manager
ขั้นตอนที่ 7:กำหนดค่าเซิร์ฟเวอร์ผู้ดูแลระบบ WebLogic
ทำตามขั้นตอนต่อไปนี้เพื่อกำหนดค่า WebLogic Admin Server เพื่อใช้ customkeystore และใบรับรองใหม่สำหรับการเชื่อมต่อ SSL:
(a) ล็อกอินเข้าสู่ WebLogic Server Console โดยใช้ข้อมูลประจำตัวผู้ดูแลระบบ WebLogic ของคุณ
(b) บน หน้าแรก ใต้ การกำหนดค่าโดเมน –> สภาพแวดล้อม คลิก เซิร์ฟเวอร์ ตามที่แสดงในภาพหน้าจอต่อไปนี้:
(c) ใน บทสรุปของเซิร์ฟเวอร์ หน้า คลิก AdminServer (ผู้ดูแลระบบ) :
(d) จากด้านซ้ายบน เปลี่ยนศูนย์ –> ดูการเปลี่ยนแปลงและเริ่มต้นใหม่ คลิกล็อกและแก้ไข เพื่ออัปเดตการตั้งค่ากฎของที่เก็บคีย์
(จ) ใน การตั้งค่าสำหรับ AdminServer ภายใต้ การกำหนดค่า ให้คลิก ที่เก็บคีย์ แท็บแล้วคลิก เปลี่ยน ตามที่แสดงในรูปภาพต่อไปนี้เพื่อเปลี่ยนกฎของผู้ดูแลระบบ WebLogic เพื่อใช้ที่เก็บคีย์แบบกำหนดเองที่สร้างขึ้นใหม่สำหรับการเชื่อมต่อ SSL
(f) อัปเดตกฎ Keystore โดยเลือก Custom Identity and Custom Trust จากคีย์สโตร์ รายการแบบเลื่อนลงและบันทึกการอัปเดต
(g) อัปเดต ./keystores/MYPRODIdentity.jks ใน Custom Identity Keystore text box.Update รหัสผ่าน keyStore และประหยัด
(ซ) อัปเดต ./keystores/MYPRODTrust.jks ใน Custom Trust Keystore กล่องข้อความอัปเดต เชื่อถือรหัสผ่านที่เก็บคีย์ และประหยัด
(i) เปิดแท็บ SSL ภายใต้ การกำหนดค่า แท็บพาเรนต์และอัปเดตพารามิเตอร์ต่อไปนี้:
(i) อัปเดต นามแฝงของคีย์ส่วนตัว ค่าพารามิเตอร์เป็น mywlsprodcert .(ii) อัปเดต ข้อความรหัสผ่านของคีย์ส่วนตัว ด้วยรหัสผ่านคีย์ส่วนตัว (iii) ภายใต้ ขั้นสูง เมนู อัปเดต การยืนยันชื่อโฮสต์ ค่าเป็นตัวตรวจสอบชื่อโฮสต์ที่กำหนดเอง จากรายการแบบเลื่อนลงดังภาพต่อไปนี้:
(iv) อัปเดต ตัวตรวจสอบชื่อโฮสต์ที่กำหนดเอง ค่าเป็น weblogic.security.utils.SSLWLSWildcardHostnameVerifier จำเป็นเนื่องจากเราใช้ใบรับรองตัวแทนเดียวสำหรับเซิร์ฟเวอร์ทั้งหมด (CN=*.mydomain.local .(v) บันทึกการอัปเดตเหล่านี้
(j) ไปที่ การกำหนดค่า –> ทั่วไป แท็บและเปิดใช้งาน SSL Listen Port Enabled โดยทำเครื่องหมายที่ช่องดังแสดงในภาพต่อไปนี้:
(k) พอร์ต SSL เริ่มต้นของเซิร์ฟเวอร์ผู้ดูแลระบบ WebLogic คือ 7002
แต่คุณสามารถกำหนดค่าบริการ SSL บนพอร์ตอื่นได้เช่นกัน คุณต้องใช้ค่าเริ่มต้น 7002 ที่นี่เพื่อการสาธิต ดังนั้นให้อัปเดต SSL Listen Port ถึง 7002 และบันทึกการอัพเดทดังแสดงในภาพต่อไปนี้:
ขั้นตอนที่ 8:กำหนดค่าเซิร์ฟเวอร์ที่มีการจัดการ WebLogic
ในการกำหนดค่าเซิร์ฟเวอร์ที่มีการจัดการ WebLogic ทั้งหมดเพื่อใช้ที่เก็บคีย์ที่กำหนดเองใหม่และใบรับรองสำหรับการเชื่อมต่อ SSL ให้ทำซ้ำขั้นตอน 7a - 7k . คุณต้องใช้ค่า SSLport ที่แตกต่างกันสำหรับแต่ละ WebLogic Managed Server ตัวอย่างเช่น ใช้ ManagedServer01: SSL port - 9001
,ManagedServer02: SSL port - 9002
, ManagedServer03: SSL port - 9003
, และอื่นๆ
ขั้นตอนที่ 9:ใช้การอัปเดตกับไฟล์การกำหนดค่า
คลิก ปล่อยการกำหนดค่า จากเมนูด้านซ้ายบนเพื่อใช้การอัปเดตทั้งหมดกับไฟล์การกำหนดค่า WebLogic
ขั้นตอนที่ 10:รีสตาร์ท WebLogic
รีสตาร์ทผู้ดูแลระบบ WebLogic และเซิร์ฟเวอร์ที่มีการจัดการทั้งหมดพร้อมกับ Node Manager
บทสรุป
โพสต์นี้มีขั้นตอนในการกำหนดค่าเซิร์ฟเวอร์ WebLogic ให้ใช้โปรโตคอลความปลอดภัย SSL ที่เปิดใช้งานเว็บไซต์เพื่อส่งข้อมูลที่สำคัญได้อย่างปลอดภัยในรูปแบบที่เข้ารหัส ด้วยการใช้ใบรับรอง SSL และกลไกการเข้ารหัสของ RSA Data Security ผู้ใช้สามารถแลกเปลี่ยนและประมวลผลข้อมูลและข้อมูลในลักษณะที่ปลอดภัย
เนื่องจากคุณเปิดใช้งาน SSL ทั้งบนเซิร์ฟเวอร์ผู้ดูแลระบบและเซิร์ฟเวอร์ที่มีการจัดการโดยใช้เอกสารนี้ ทั้งข้อมูลและเซิร์ฟเวอร์ WebLogic จึงปลอดภัยจากการโจมตีทางไซเบอร์และการรั่วไหลของข้อมูล
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา