مجله ایرانیکاسرورآموزش سرور، هاست، وردپرس و شبکه
آموزشی

چرا Cisco MPP خطای TLS Handshake می‌دهد؟ بررسی Certificate و NTP

اگر Cisco MPP روی UDP یا TCP رجیستر می‌شود اما به‌محض انتخاب TLS وضعیت آن روی Not Registered می‌ماند، مشکل را نباید از SIP Password شروع کنید. پیش از ارسال REGISTER، ابتدا اتصال TCP…

چرا Cisco MPP خطای TLS Handshake می‌دهد؟ بررسی Certificate و NTP
خلاصه سریع این آموزش

اگر Cisco MPP روی UDP یا TCP رجیستر می‌شود اما به‌محض انتخاب TLS وضعیت آن روی Not Registered می‌ماند، مشکل را نباید از SIP Password شروع کنید. پیش از ارسال…

۱۸ دقیقه مطالعه ۰ دیدگاه ۲۲ مهر ۱۴۰۵ آخرین به‌روزرسانی
اگر Cisco MPP روی UDP یا TCP رجیستر می‌شود اما به‌محض انتخاب TLS وضعیت آن روی Not Registered می‌ماند، مشکل را نباید از SIP Password شروع کنید. پیش از ارسال REGISTER، ابتدا اتصال TCP ساخته می‌شود و سپس TLS Handshake باید با موفقیت کامل شود. اگر Certificate، CA Chain، Hostname، ساعت دستگاه یا نسخه TLS سازگار نباشد، تماس امن هنوز به مرحله SIP نمی‌رسد.

در Cisco 7800 و 8800 با Multiplatform Firmware، این خطا معمولاً در یکی از چند نقطه رخ می‌دهد: سرور Certificate اشتباه ارائه می‌کند، Intermediate CA ناقص است، Root CA مورد اعتماد Phone نیست، نام Proxy با SAN گواهی تطبیق ندارد، ساعت Cisco اشتباه است، Server فقط نسخه TLS نامناسبی قبول می‌کند یا یک Load Balancer و TLS Virtual Host بر اساس SNI Certificate دیگری تحویل می‌دهد.

در این راهنما به‌جای خاموش‌کردن Certificate Validation، TLS را از TCP SYN تا ClientHello، ServerHello، Certificate و در نهایت SIP REGISTER دنبال می‌کنیم تا دقیقاً مشخص شود Handshake در کدام مرحله متوقف شده است.

فهرست مطالب

TLS Handshake در Cisco MPP قبل از Registration چه مسیری دارد؟

در یک Registration سالم با TLS، ترتیب کلی تقریباً این است:

DNS / SRV
   ↓
TCP SYN
   ↓
TCP SYN, ACK
   ↓
ClientHello
   ↓
ServerHello
   ↓
Server Certificate
   ↓
Certificate Validation
   ↓
TLS Finished
   ↓
SIP REGISTER
   ↓
401 Unauthorized
   ↓
REGISTER + Authorization
   ↓
200 OK

این زنجیره برای عیب‌یابی بسیار مهم است؛ چون هر مرحله‌ای که متوقف شود، گروه علت‌های احتمالی را کوچک‌تر می‌کند.

اول مشخص کنید TLS خراب است یا SIP

تشخیص سریع محل خرابی
آخرین چیزی که در Capture می‌بینید تمرکز اصلی
DNS Query بدون پاسخ DNS و شبکه
TCP SYN بدون SYN-ACK Firewall، Route یا Port
ClientHello بدون ServerHello TLS Version، Cipher، Firewall یا TLS Server
Certificate سپس TLS Alert CA، Chain، Expiry، Hostname یا Time
TLS کامل ولی REGISTER نداریم Phone Configuration یا SIP Layer
REGISTER و 401 دیده می‌شوند TLS سالم است؛ Authentication را بررسی کنید
REGISTER و 403 Account، Policy یا Credential

مرحله اول: مطمئن شوید Cisco واقعاً TLS استفاده می‌کند

در Web Interface تلفن وارد:

Admin Login → advanced → Voice → Ext(n)

شوید.

در بخش SIP Settings باید Transport مطابق طراحی باشد:

SIP Transport = TLS

اگر از Provisioning استفاده می‌کنید، Configuration نیز می‌تواند چیزی شبیه این باشد:

<SIP_Transport_1_ ua="na">TLS</SIP_Transport_1_>

Port TLS را حدس نزنید

برای SIP/TLS مقدار 5061 رایج است، اما SRV Record، Provider یا PBX می‌تواند Port دیگری معرفی کند.

اگر Proxy را به‌شکل زیر تنظیم کرده‌اید:

pbx.example.com:5061

ابتدا مطمئن شوید همان Port واقعاً TLS Listener دارد.

از Linux اتصال TCP را تست کنید

nc -vz pbx.example.com 5061

این تست فقط TCP Reachability را ثابت می‌کند؛ موفقیت آن به معنی سالم بودن TLS نیست.

مرحله دوم: Certificate واقعی سرور را ببینید

یکی از مهم‌ترین ابزارها برای این کار OpenSSL است.

openssl s_client \
-connect pbx.example.com:5061 \
-servername pbx.example.com \
-showcerts

در خروجی، Certificate اصلی و Intermediate Certificateهای ارسال‌شده توسط Server را بررسی کنید.

چه قسمت‌هایی از خروجی OpenSSL مهم‌اند؟

به این موارد توجه کنید:

subject=
issuer=
Certificate chain
Verification error
Verify return code

اگر مثلاً ببینید:

Verify return code: 0 (ok)

از دید Trust Store همان سیستم Linux، Chain معتبر بوده است؛ اما هنوز ثابت نمی‌کند Cisco Phone همان Root CA را Trust می‌کند.

چرا مرورگر Certificate را قبول می‌کند ولی Cisco نه؟

Browser یا سیستم‌عامل کامپیوتر Trust Store خودش را دارد.

Cisco MPP نیز Root Certificateهای خودش و در صورت استفاده Custom CAهای Provisionشده را دارد.

بنابراین این نتیجه:

Chrome = trusted

به‌تنهایی به معنی:

Cisco MPP = trusted

نیست.

CA Chain دقیقاً چگونه باید ساخته شود؟

یک Chain معمولی:

Server Certificate
       ↓
Intermediate CA
       ↓
Root CA

در بسیاری از TLS Deploymentها Server باید Certificate خودش و Intermediateهای لازم را ارائه کند و Client از قبل Root CA را Trust داشته باشد.

یکی از خطاهای رایج: Intermediate Certificate نصب نشده

فرض کنید Certificate سرور توسط این Chain صادر شده است:

pbx.example.com
   ↓
Example Intermediate CA R2
   ↓
Example Root CA

اما Server فقط `pbx.example.com` را ارسال می‌کند.

برخی Clientها می‌توانند Intermediate را از Cache یا AIA پیدا کنند، اما نباید برای Cisco Phone به این رفتار تکیه کنید. Chain را روی Server کامل ارائه کنید.

Certificate Chain را با OpenSSL ذخیره و بررسی کنید

openssl s_client \
-connect pbx.example.com:5061 \
-servername pbx.example.com \
-showcerts </dev/null

تاریخ اعتبار Certificate را مستقیم ببینید

برای یک Certificate ذخیره‌شده:

openssl x509 \
-in server.crt \
-noout \
-subject \
-issuer \
-dates

خروجی مهم:

notBefore=...
notAfter=...

Expired و Not Yet Valid را از هم جدا کنید

Certificate فقط بین دو زمان معتبر است:

notBefore ≤ current time ≤ notAfter

اگر زمان Cisco جلوتر از `notAfter` باشد، Certificate منقضی‌شده به نظر می‌رسد.

اگر زمان Phone عقب‌تر از `notBefore` باشد، Certificate هنوز معتبر نشده به نظر می‌رسد.

پس NTP مستقیماً روی TLS اثر می‌گذارد

Cisco MPP زمان خود را معمولاً از NTP می‌گیرد. اگر NTP Server اشتباه، غیرقابل دسترس یا ساعت Device به‌هم‌ریخته باشد، Certificate سالم نیز می‌تواند در زمان Validation نامعتبر تشخیص داده شود.

NTP Server در Cisco MPP کجاست؟

در Web UI:

Voice → System → Optional Network Configuration

موارد زیر را بررسی کنید:

Primary NTP Server
Secondary NTP Server

Cisco همچنین دریافت NTP از DHCPv4 Option 42 را پشتیبانی می‌کند؛ NTP دستی Primary/Secondary نسبت به DHCP اولویت بالاتری دارد.

نمونه Provisioning NTP

<Primary_NTP_Server ua="rw">ntp1.example.com</Primary_NTP_Server>
<Secondary_NTP_Server ua="rw">ntp2.example.com</Secondary_NTP_Server>

Timezone اشتباه با ساعت UTC اشتباه یکی نیست

فقط اینکه ساعت روی LCD یک ساعت عقب یا جلو نمایش داده می‌شود لزوماً به معنی خراب بودن Validation نیست.

برای Certificate مهم، زمان واقعی سیستم است.

Timezone بیشتر نحوه نمایش Local Time را تعیین می‌کند؛ اما اگر خود Clock یا NTP اشتباه باشد، آن زمان TLS نیز تحت تأثیر قرار می‌گیرد.

مرحله بعد: Hostname Certificate را بررسی کنید

Cisco MPP در SIP over TLS می‌تواند Hostname سروری را که به آن متصل شده با Certificate مقایسه کند.

در:

Voice → Ext(n) → Proxy and Registration

گزینه:

TLS Name Validate = Yes

را بررسی کنید.

مقدار پیش‌فرض Cisco برای این گزینه Yes است.

TLS Name Validate دقیقاً چه چیزی را مقایسه می‌کند؟

Cisco در MPP برای Hostname Verification اطلاعات Certificate از جمله:

Subject Alternative Name (SAN)
Common Name (CN)

را برای تشخیص هویت Server بررسی می‌کند.

نمونه Hostname صحیح

Proxy:

pbx.example.com

Certificate:

DNS:pbx.example.com

این حالت منطقی است.

نمونه Hostname Mismatch

Phone به:

sip.example.com

وصل می‌شود اما Certificate فقط:

DNS:pbx.example.net

دارد.

در این حالت با TLS Name Validation فعال، اتصال می‌تواند Fail شود.

SANهای Certificate را با OpenSSL ببینید

openssl x509 \
-in server.crt \
-noout \
-ext subjectAltName

اتصال با IP می‌تواند TLS Validation را خراب کند

اگر Certificate برای:

pbx.example.com

صادر شده، بهتر است Cisco نیز با همان FQDN به Server متصل شود.

تبدیل Proxy به:

203.0.113.20

ممکن است DNS را دور بزند اما Hostname Verification را خراب کند.

TLS Name Validate را برای Production خاموش نکنید

برای یک تست بسیار کوتاه ممکن است خاموش‌کردن Validation نشان دهد مشکل از Identity/Certificate Validation است.

اما اگر:

TLS Name Validate = No

تنها راه کارکردن سیستم است، مشکل اصلی هنوز حل نشده است.

Certificate، SAN، CA Chain یا FQDN را اصلاح کنید و Validation را دوباره فعال کنید.

SNI چیست و چرا می‌تواند Certificate اشتباه ایجاد کند؟

SNI یا Server Name Indication بخشی از ClientHello است که به TLS Server می‌گوید Client قصد اتصال به کدام Hostname را دارد.

این قابلیت وقتی چند TLS Virtual Host روی یک IP وجود دارند اهمیت زیادی دارد.

مثلاً:

203.0.113.20
 ├── sip-a.example.com
 ├── sip-b.example.com
 └── sip-c.example.com

Server ممکن است بر اساس SNI تصمیم بگیرد کدام Certificate را ارائه کند.

درباره SNI در Cisco MPP حدس نزنید

در مستند عمومی MPP که برای این مقاله بررسی شده، یک تضمین واحد برای رفتار SNI در همه مدل‌ها و همه Firmwareها ارائه نشده است.

پس اگر TLS Server برای انتخاب Certificate به SNI وابسته است، بهترین روش این است که رفتار خود Device را در ClientHello مشاهده کنید.

SNI را در Wireshark بررسی کنید

ClientHelloها:

tls.handshake.type == 1

برای فیلد SNI:

tls.handshake.extensions_server_name

داخل ClientHello نیز مسیر زیر را باز کنید:

Transport Layer Security → Client Hello → Extension: server_name

با OpenSSL وجود SNI را روی Server مقایسه کنید

با SNI:

openssl s_client \
-connect 203.0.113.20:5061 \
-servername pbx.example.com

و برای مقایسه بدون مشخص‌کردن Server Name:

openssl s_client \
-connect 203.0.113.20:5061

اگر دو تست Certificate متفاوتی برمی‌گردانند، TLS Virtual Hosting یا SNI در Server نقش دارد.

مرحله بعد: TLS Version را بررسی کنید

در مرجع فعلی Cisco MPP پارامتر:

TLS Client Min Version

وجود دارد.

مقدار پیش‌فرض فعلی:

TLS 1.2

نمونه XML

<TLS_Client_Min_Version ua="na">TLS 1.2</TLS_Client_Min_Version>

آیا Cisco 8841 و 8851 را روی TLS 1.3 قرار دهیم؟

فعلاً نباید این موضوع را برای همه MPPها فرض کرد.

مرجع فعلی Cisco صریحاً یادآوری می‌کند که گزینه TLS 1.3 از Release 12.0(7)SR3 برای Cisco IP Conference Phone 7832 و 8832 در دسترس است.

پس برای 8841، 8851 و سایر مدل‌ها Firmware Matrix همان Device را بررسی کنید.

Server با TLS 1.3-only می‌تواند Cisco قدیمی‌تر را قطع کند

اگر Phone فقط TLS 1.2 را Offer کند ولی Server فقط TLS 1.3 قبول کند، Negotiation مشترکی وجود ندارد.

در Capture ممکن است ClientHello ببینید و بلافاصله Alert یا Connection Reset دریافت کنید.

TLS 1.2 سرور را با OpenSSL تست کنید

openssl s_client \
-connect pbx.example.com:5061 \
-servername pbx.example.com \
-tls1_2

اگر این تست Fail می‌شود ولی سرور فقط TLS 1.3 جواب می‌دهد، برای Phoneهایی که TLS 1.3 ندارند Compatibility مشکل خواهد داشت.

Cipher Suite هم می‌تواند Handshake را متوقف کند

دو سمت باید حداقل یک Cipher Suite مشترک داشته باشند.

اگر روی PBX یا Load Balancer Policy بسیار محدود تعریف کرده‌اید، ClientHello Cisco را در PCAP باز کنید و Cipher Suites پیشنهادی را ببینید.

در MPP پارامتر:

TLS Cipher List

نیز وجود دارد، اما Cipherهای ضعیف یا نسخه TLS قدیمی را صرفاً برای رفع موقت خطا فعال نکنید.

Handshake Failure با Unknown CA فرق دارد

TLS Alertها سرنخ بسیار خوبی هستند.

نمونه TLS Alert و مفهوم اولیه
Alert مظنون اصلی
unknown_ca CA یا Trust Chain
certificate_expired Expiry یا ساعت Device
bad_certificate Certificate نامعتبر یا ناسازگار
unsupported_certificate نوع Certificate یا الگوریتم نامناسب
handshake_failure TLS Version، Cipher یا Policy
unrecognized_name SNI / Virtual Host

اما همیشه Alert دقیق ارسال نمی‌شود؛ بعضی Serverها فقط TCP Connection را Reset می‌کنند.

Wireshark Filterهای اصلی TLS

تمام TLS:

tls

ClientHello:

tls.handshake.type == 1

ServerHello:

tls.handshake.type == 2

Certificate:

tls.handshake.type == 11

TLS Alert:

tls.alert_message

اگر Wireshark ترافیک را فقط TCP نشان می‌دهد

ممکن است Port غیرمعمول TLS استفاده شده باشد.

روی Stream راست‌کلیک کنید و از:

Decode As → TLS

استفاده کنید.

PCAP سالم چه الگویی دارد؟

Cisco → Server   TCP SYN
Server → Cisco   SYN, ACK
Cisco → Server   ACK

Cisco → Server   TLS ClientHello
Server → Cisco   TLS ServerHello
Server → Cisco   Certificate
...
TLS Handshake Finished

Cisco → Server   SIP REGISTER

سناریوی اول: ClientHello می‌رود ولی هیچ ServerHello نمی‌آید

بررسی کنید:

Port واقعاً TLS است یا نه، Firewall Packet را Drop نکرده، Load Balancer Listener درست است، TLS Version مشترک وجود دارد و Cipher مشترک وجود دارد.

Server Log نیز در این مرحله بسیار مهم است.

سناریوی دوم: ServerHello و Certificate می‌رسد و بعد Cisco اتصال را می‌بندد

در این حالت Certificate Validation یکی از مظنون‌های اصلی است.

این موارد را بررسی کنید:

Certificate Validation Checklist
بررسی وضعیت مطلوب
notBefore گذشته باشد
notAfter هنوز نرسیده باشد
SAN/CN با Proxy FQDN سازگار
Intermediate Chain کامل باشد
Root CA برای Phone قابل اعتماد باشد
Phone Clock NTP صحیح

سناریوی سوم: فقط بعد از تمدید Certificate مشکل شروع شده است

این یکی از قوی‌ترین سرنخ‌هاست.

Certificate قدیمی و جدید را مقایسه کنید:

Issuer عوض شده؟

Intermediate جدید شده؟

SANها تغییر کرده‌اند؟

Key Type یا Signature Algorithm تغییر کرده؟

Full Chain روی Server نصب شده؟

سناریوی چهارم: Certificate جدید در مرورگر درست است ولی Cisco خراب شده

احتمالاً Trust Store کامپیوتر زنجیره جدید را می‌شناسد اما Phone آن را نمی‌شناسد، یا مرورگر Intermediate را Cache کرده است.

Chain را با یک Client تمیز و خود PCAP بررسی کنید.

سناریوی پنجم: فقط بعد از تغییر IP یا Load Balancer مشکل داریم

SNI، Certificate انتخاب‌شده توسط Virtual Host و NAT/LB Listener را بررسی کنید.

ممکن است IP جدید Certificate پیش‌فرض متفاوتی ارائه کند.

سناریوی ششم: با FQDN خراب است ولی با IP وصل می‌شود

این تست را با احتیاط تفسیر کنید.

ممکن است مشکل DNS باشد، اما ممکن است رفتار SNI، Virtual Host یا Certificate Selection نیز تغییر کند.

PCAP هر دو حالت را مقایسه کنید.

سناریوی هفتم: با TLS Name Validate خاموش رجیستر می‌شود

این نتیجه بسیار مهم است.

Credential و مسیر TCP احتمالاً سالم‌اند.

تمرکز را روی:

Hostname، SAN/CN، CA Trust، Chain و Certificate Validation قرار دهید.

سناریوی هشتم: با UDP رجیستر می‌شود ولی TLS نه

در این حالت User ID، Auth ID و Password احتمالاً درست‌اند.

تفاوت مسیر را بررسی کنید:

UDP:
DNS → SIP REGISTER

TLS:
DNS → TCP → TLS Handshake → SIP REGISTER

مشکل تقریباً در یکی از مراحل اضافه‌شده TLS است.

سناریوی نهم: TLS روی یک Cisco کار می‌کند ولی روی مدل دیگری نه

Firmware Version، Hardware Model، TLS Client Minimum Version، Cipher Support و Root Store را مقایسه کنید.

دو Device با ظاهر مشابه الزاماً TLS Capability کاملاً یکسانی ندارند.

سناریوی دهم: Cisco قدیمی بعد از Hardening سرور از کار افتاده است

اگر اخیراً روی PBX یا SBC:

TLS 1.0/1.1 را حذف کرده‌اید، Cipherها را محدود کرده‌اید، Certificate الگوریتم جدید گرفته یا Server را TLS 1.3-only کرده‌اید، تغییر Security Policy را با ClientHello Phone مقایسه کنید.

سناریوی یازدهم: Webex Calling DNS سالم است ولی Registration انجام نمی‌شود

بعد از DNS SRV، Webex Calling وارد TCP/TLS می‌شود.

در PCAP بررسی کنید آیا:

TCP Connection ساخته می‌شود، ClientHello خارج می‌شود، ServerHello و Certificate می‌آیند و TLS Handshake کامل می‌شود.

اگر Handshake Fail شده، SIP Username را تغییر ندهید.

سناریوی دوازدهم: زمان Phone بعد از هر Reboot اشتباه می‌شود

NTP را اصلاح کنید.

Manual Time راه‌حل پایدار نیست؛ Cisco پس از NTP Synchronization زمان را دوباره جایگزین می‌کند.

DHCP Option 42، Primary/Secondary NTP و دسترسی UDP/123 را بررسی کنید.

Custom CA در Cisco MPP

اگر SIP Server شما Certificate خصوصی دارد، باید Trust Model Phone را بررسی کنید.

در MPPهای پشتیبانی‌شده، وضعیت Custom CA را می‌توان در بخش Status یا Certificate مشاهده کرد.

نمونه وضعیت:

Custom CA Provisioning Status
Custom CA Info
Installed / Not Installed

Private CA را با Self-Signed Server Certificate اشتباه نگیرید

در طراحی بهتر، Server Certificate توسط CA داخلی سازمان صادر می‌شود و Root/Intermediate آن CA به Clientهای مجاز معرفی می‌شود.

استفاده از یک Self-Signed Leaf Certificate بدون Trust Configuration مناسب معمولاً باعث Validation Failure می‌شود.

Certificate واقعی را از PCAP هم می‌توان دید

اگر Server Certificate در TLS Handshake قابل مشاهده باشد، در Wireshark:

Transport Layer Security → Handshake Protocol: Certificate

را باز کنید.

Issuer، Subject، SAN و Chain را با Certificate مورد انتظار مقایسه کنید.

این کار برای Load Balancer بسیار مهم است

ممکن است شما روی PBX Certificate صحیح نصب کرده باشید، ولی TLS در Load Balancer Terminate شود.

Cisco در واقع Certificate Load Balancer را می‌بیند، نه Certificate داخلی PBX.

پس همیشه Certificate‌ای را بررسی کنید که واقعاً روی Wire ارائه می‌شود.

Firewall با TLS Inspection می‌تواند Certificate را عوض کند

در بعضی شبکه‌ها TLS Proxy یا SSL Inspection یک Certificate جدید تولید می‌کند.

در این حالت Cisco ممکن است Issuer داخلی Firewall را Trust نداشته باشد.

PCAP سمت Phone سریعاً نشان می‌دهد Certificate ارائه‌شده متعلق به PBX است یا Security Appliance.

چک‌لیست نهایی TLS Handshake در Cisco MPP

قبل از Factory Reset یا تغییر SIP Credential
بررسی نتیجه مطلوب
DNS Proxy به مقصد صحیح Resolve شود
TCP Three-way handshake کامل
ClientHello از Cisco ارسال شود
TLS Version نسخه مشترک وجود داشته باشد
Cipher حداقل یک Cipher مشترک
Server Certificate Certificate درست ارائه شود
CA Chain Intermediateها کامل
Root CA برای Phone مورد اعتماد
SAN/CN با Proxy FQDN تطبیق داشته باشد
NTP زمان Phone صحیح
SNI در صورت نیاز Server با PCAP بررسی شود
TLS Alert علت واقعی ثبت شود
REGISTER پس از Handshake ظاهر شود

پرسش‌های متداول درباره Cisco TLS Handshake Failed

چرا Cisco MPP روی UDP رجیستر می‌شود ولی روی TLS نه؟

چون TLS قبل از SIP Registration یک لایه اضافی شامل TCP، TLS Negotiation و Certificate Validation دارد. اگر UDP سالم است، Credential احتمالاً درست است و باید TLS Version، CA Chain، Certificate، Hostname و NTP را بررسی کنید.

TLS Name Validate در Cisco MPP چیست؟

گزینه‌ای برای بررسی هویت Hostname در SIP over TLS است. Cisco می‌تواند نام Proxy را با اطلاعات SAN/CN Certificate مقایسه کند و مقدار پیش‌فرض این گزینه Yes است.

آیا خاموش‌کردن TLS Name Validate مشکل را حل می‌کند؟

ممکن است برای تست کوتاه نشان دهد مشکل در Certificate Validation است، اما راه‌حل Production نیست. علت Hostname، SAN، CA یا Chain را اصلاح و Validation را دوباره فعال کنید.

چرا Certificate در مرورگر معتبر است اما Cisco آن را قبول نمی‌کند؟

Browser و Cisco Trust Storeهای متفاوتی دارند. همچنین Browser ممکن است Intermediate Certificate را Cache یا Download کند، در حالی که Phone به Chain ارائه‌شده توسط Server و Rootهای مورد اعتماد خودش وابسته است.

ساعت اشتباه Cisco چطور TLS را خراب می‌کند؟

Certificate فقط بین notBefore و notAfter معتبر است. اگر ساعت Device اشتباه باشد، Certificate می‌تواند Expired یا Not Yet Valid تشخیص داده شود.

SNI چه ارتباطی با Certificate دارد؟

در Serverهایی که چند TLS Virtual Host روی یک IP دارند، SNI می‌تواند تعیین کند Server کدام Certificate را ارائه دهد. رفتار واقعی Cisco و Firmware را باید در ClientHello با Packet Capture بررسی کرد.

چطور SNI را در Wireshark ببینیم؟

ClientHello را باز کنید و Extension server_name را بررسی کنید یا از فیلد tls.handshake.extensions_server_name استفاده کنید.

حداقل TLS Version فعلی Cisco MPP چیست؟

در مرجع فعلی MPP، مقدار پیش‌فرض TLS Client Min Version برابر TLS 1.2 است. پشتیبانی TLS 1.3 به مدل و Firmware وابسته است.

آیا Cisco 8841 و 8851 حتماً TLS 1.3 دارند؟

نباید چنین فرضی کرد. مرجع فعلی Cisco گزینه TLS 1.3 را از Release 12.0(7)SR3 برای مدل‌های کنفرانسی 7832 و 8832 ذکر می‌کند؛ مدل و Firmware دقیق Device را جداگانه بررسی کنید.

Unknown CA در TLS یعنی چه؟

یعنی Certificate Chain ارائه شده است اما Client نتوانسته آن را به یک Trust Anchor یا Root CA مورد اعتماد متصل کند.

Certificate Expired همیشه یعنی Certificate واقعاً منقضی شده است؟

نه لزوماً. ابتدا notAfter و همچنین ساعت واقعی Cisco را بررسی کنید. Clock اشتباه می‌تواند نتیجه Validation را تغییر دهد.

چطور بفهمیم مشکل TLS حل شده است؟

پس از کامل‌شدن Handshake باید SIP REGISTER دیده شود. اگر REGISTER و سپس 401 Challenge ظاهر شدند، TLS عملاً از مرحله اصلی خود عبور کرده و باید SIP Authentication را بررسی کنید.

جمع‌بندی

برای رفع خطای TLS Handshake در Cisco MPP از SIP Password شروع نکنید. ابتدا مشخص کنید TCP Connection ساخته می‌شود یا نه و در PCAP ببینید Handshake تا کدام مرحله جلو می‌رود.

اگر Server Certificate ارائه می‌شود و بعد اتصال بسته می‌شود، CA Chain، Root CA، SAN/CN، Expiry و ساعت Cisco را بررسی کنید. در MPP، TLS Name Validate به‌صورت پیش‌فرض فعال است و Certificate باید با Hostname مورد استفاده برای اتصال سازگار باشد.

اگر ClientHello ارسال می‌شود اما ServerHello ندارید، TLS Version، Cipher، Port و Firewall را بررسی کنید. در مرجع فعلی Cisco حداقل TLS Client Version به‌صورت پیش‌فرض TLS 1.2 است و پشتیبانی TLS 1.3 برای همه مدل‌های 7800/8800 یکسان نیست.

SNI نیز در محیط‌های دارای Load Balancer و چند TLS Virtual Host مهم است. به‌جای فرض‌کردن اینکه Phone SNI را با مقدار موردنظر ارسال می‌کند، ClientHello واقعی Cisco را در Packet Capture باز کنید و Extension server_name را ببینید.

در نهایت، نقطه پایان عیب‌یابی TLS بسیار واضح است: وقتی Handshake کامل شد و اولین SIP REGISTER ظاهر شد، مشکل TLS اصلی پشت سر گذاشته شده است. از آن نقطه به بعد خطاهای 401، 403 یا Registration Policy را به‌عنوان مسئله SIP بررسی کنید.

منابع و مستندات
Certificate Validation، Hostname، TLS Version، NTP، Packet Capture و رفتار TLS این مقاله با مستندات رسمی Cisco و استانداردهای اصلی TLS/X.509 تطبیق داده شده‌اند.
Cisco MPP
TLS Name Validate، SAN/CN و رفتار Hostname Verification روی Cisco MPP
Cisco XML Reference
TLS 1.2 پیش‌فرض، TLS Cipher List، TLS Name Validate و محدودیت فعلی TLS 1.3 در مدل‌ها
Cisco Webex Calling
روش رسمی Cisco برای دنبال‌کردن Registration و TLS Handshake با Packet Capture
Cisco
Primary/Secondary NTP Server، DHCP Option 42 و مدیریت ساعت Cisco MPP
RFC Editor
Certificate Chain، notBefore، notAfter و استاندارد اعتبار گواهی X.509
RFC Editor
ساختار SNI در ClientHello و انتخاب Certificate روی TLS Virtual Host
Cisco روی TLS رجیستر نمی‌شود؟

Certificate، CA Chain و مسیر TLS را قبل از تغییر SIP بررسی کنید

اگر Cisco MPP روی UDP کار می‌کند اما TLS Handshake شکست می‌خورد، می‌توانید درخواست بررسی کانفیگ ثبت کنید تا Certificate، NTP، DNS، TLS Version، Firewall و Packet Capture بر اساس همان زیرساخت بررسی شوند.

تماس با پشتیبانی ایرانیکاسرور

021-91302467

اشتراک‌گذاری مقاله
گفت‌وگو درباره آموزش

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده است.

دیدگاه یا سؤال خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *