การกำหนดค่าปัจจุบัน:
เรามี PBX (เครื่องหมายดอกจัน) บน IP ภายนอกเพื่อให้ไคลเอ็นต์ SIP ทั้งหมดสำหรับการลงทะเบียน/การโทร ฯลฯ ปัจจุบัน เฉพาะพอร์ต 5061/tls เท่านั้นที่เปิดอยู่และต้องมีใบรับรองไคลเอ็นต์ Pjsip.conf มีลักษณะดังนี้:
INSERT INTO `CONFIG_pjsip` (`id`, `cat_metric`, `var_metric`, `commented`, `ชื่อไฟล์`,
`หมวดหมู่`, `var_name`, `var_val`) ค่า
...
(13,1,0,0,'pjsip.conf','secur','type','transport'),
(14,1,1,0,'pjsip.conf','secur','ผูก','0.0.0.0:5061'),
(19,1,3,0,'pjsip.conf','secur','โปรโตคอล','tls'),
(20,1,4,0,'pjsip.conf','secur','cert_file','/etc/asterisk/keys/dev200_pbx.crt'),
(21,1,5,0,'pjsip.conf','secur','priv_key_file','/etc/asterisk/keys/dev200_pbx.key'),
(22,1,6,0,'pjsip.conf','secur','ca_list_file','/etc/asterisk/keys/rootCA.crt'),
(23,1,7,0,'pjsip.conf','secur','require_client_cert','yes'),
(24,1,8,0,'pjsip.conf','secur','verify_client','ใช่'),
(25,1,9,0,'pjsip.conf','secur','verify_server','ใช่'),
(26,1,10,0,'pjsip.conf','secur','external_media_address','Our-ext-IP'),
(27,1,11,0,'pjsip.conf','secur','external_signaling_address','Our-ext-IP'),
(28,1,12,0,'pjsip.conf','secur','external_signaling_port','5061'),
(29,1,13,0,'pjsip.conf','secur','local_net','10.0.0.0/8'),
(30,1,14,0,'pjsip.conf','secur','วิธีการ','sslv23');
...
เราสร้าง CA ของเราแล้วและลงนามในใบรับรองแต่ละรายการ (สำหรับไคลเอนต์ PBX และ SIP) ทุกอย่างทำงานได้ดี TLS handshake จะสำเร็จก็ต่อเมื่อไคลเอนต์ SIP (Blink) มีใบรับรอง "ของเรา" <- ซึ่งถูกต้องและมีลักษณะการทำงานที่คาดไว้
ปัญหา
เราต้องการใช้ใบรับรอง UNIQUE สำหรับไคลเอนต์ sip แต่ละตัว มีความคิดว่าเราจะทำได้อย่างไร ตอนแรกคิดว่าจะใช้ "COMMON NAME" ตรวจสอบ ตัวอย่างเช่น sip with ext. 101 สามารถใช้ COMMON NAME เช่น "ourPBX-ext-13" หรืออะไรก็ตาม ฯลฯ ความคิดเดิมของฉันคือเครื่องหมายดอกจันตรวจสอบ COMMON NAME field form client cert และเครื่องหมายดอกจันตรวจสอบว่าไคลเอนต์ SIP 13 ใช้ใบรับรองนั้นจริงหรือไม่ซึ่งอนุญาตสำหรับ SIP 13 เท่านั้น ตัวอย่างเช่น SIP 14 ไม่สามารถใช้ใบรับรองเดียวกันกับ SIP 13 ไคลเอนต์ SIP ทั้งสอง (13 และ 14) กำลังใช้ใบรับรอง "ของเรา" แต่แต่ละอันควรไม่ซ้ำกัน (ไม่เหมือนกัน)
เป็นไปได้ไหมที่จะทำ? หรือคุณสามารถแสดงวิธีแก้ปัญหาอื่นที่อนุญาตให้เก็บใบรับรองที่ไม่ซ้ำใคร สำหรับแต่ละไคลเอนต์ SIP? ฉันรู้ว่าเป็นไปได้ที่จะตรวจสอบใบรับรองอีกครั้ง IP (หรือชื่อโฮสต์) แต่ฉันใช้ไม่ได้ IP ไคลเอนต์ SIP นั้น "สุ่ม" คนเหล่านี้มักจะทำงานจากที่บ้าน - ดังนั้นจึงไม่มีโอกาสได้รับ IP ของพวกเขา
ฉันเกรงว่าหากฉันสร้างใบรับรองเพียงใบเดียวสำหรับไคลเอนต์ SIP ทั้งหมด การรักษาความปลอดภัยจะไม่ดีนัก