Configurație curentă:
Avem un PBX (asterisc) pe IP extern pentru a permite tuturor clienților SIP pentru înregistrare/apelare etc. În prezent, este deschis doar portul 5061/tls și este necesar certificatul de client. Pjsip.conf arată astfel:
INSERT INTO `CONFIG_pjsip` (`id`, `cat_metric`, `var_metric`, `commented`, `filename`,
`category`, `var_name`, `var_val`) VALORI
...
(13,1,0,0,'pjsip.conf','secur','type','transport'),
(14,1,1,0,'pjsip.conf','secur','bind','0.0.0.0:5061'),
(19,1,3,0,'pjsip.conf','secur','protocol','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','yes'),
(25,1,9,0,'pjsip.conf','secur','verify_server','yes'),
(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','method','sslv23');
...
Ne creăm deja CA și semnăm fiecare certificat (pentru PBX și client SIP). Totul merge bine. Strângerea de mână TLS are succes numai dacă clientul SIP (Blink) are certificatul „nostru” <- care este comportamentul corect și așteptat.
Problemă
Am dori să folosim un certificat UNIC pentru FIECARE client sip. Ai idee cum o putem face? La început m-am gândit să folosesc „NUME COMUN” pentru a-l verifica. De exemplu sorbi cu ext. 101 poate folosi COMMON NAME ca „ourPBX-ext-13” sau orice altceva, etc. Ideea mea inițială a fost că Asterisk verifica câmpul COMMON NAME din formularul client cert. Și asterisc verificați dacă clientul SIP 13 folosește într-adevăr acel certificat, care este permis NUMAI pentru SIP 13. De exemplu, SIP 14 nu poate folosi același certificat ca SIP 13. Ambii clienți SIP (13 și 14) folosesc certificatul „nostru”. , dar fiecare ar trebui să fie unic (nu același).
Este posibil sa o faci? Sau îmi puteți arăta orice altă soluție care să permită păstrarea certificatului unic. pentru fiecare client SIP? Știu că este posibil să verific din nou certificatul IP (sau numele gazdei), dar nu îl pot folosi. IP-ul clientului SIP este „aleatoriu”, aceste persoane lucrează de obicei de acasă - deci nu există nicio șansă de a-și obține IP-ul.
Mă tem că dacă creez un singur certificat pentru toți clienții SIP, atunci securitatea va fi foarte proastă.