FortiClient VPN đứng 40% sau khi nâng cấp FortiOS - Cách xử lý nhanh trong 30 giây
FortiClient VPN đứng 40% sau khi nâng cấp FortiOS – Cách xử lý nhanh trong 30 giây
Bài này dành cho anh em cần xử lý nhanh, không lan man. Làm theo đúng 1 chỗ là thường hết lỗi ngay.
Giải pháp 30 giây (làm trước, hiểu sau)
Nếu FortiClient VPN đứng ở 40% và hệ thống đang dùng SAML với Microsoft Entra ID (Azure AD), hãy kiểm tra ngay phần ký SAML phía IdP.
Trong Microsoft Entra ID, tại ứng dụng FortiClient hoặc FortiGate SSL VPN, vào SAML Signing Certificate và bật:
Sign SAML response and assertionTrong rất nhiều hệ thống thực tế, chỉ cần chỉnh đúng mục này là VPN vào được ngay, không cần thay đổi firewall hay user.

- FortiClient chạy tới Status: 40% rồi đứng
- Có thể báo Credential or SSLVPN configuration is wrong (-7200)
- Hoặc Firewall Authentication Failed
- Xác thực SAML xong nhưng bị đá ngược lại trang login
Dễ bị hiểu nhầm là lỗi firewall, policy, user hoặc VPN profile.
Vì sao lỗi này hay gây nhầm lẫn?
Điểm khó của lỗi FortiClient đứng 40% là nó không báo lỗi rõ ràng. Nhìn bên ngoài giống như sai user hoặc sai cấu hình VPN, nên nhiều người sẽ đi kiểm tra firewall, policy, group trước.
Trong khi thực tế, FortiGate vẫn hoạt động bình thường, vấn đề thường nằm ở phía Identity Provider.
IT thường làm gì đầu tiên?
Kiểm tra policy, group, VPN portal, user mapping.
Nhưng lỗi thật nằm ở đâu?
Ở tùy chọn ký SAML của IdP, đặc biệt là Entra ID.
Nguyên nhân thật sự nằm ở đâu?
Bắt đầu từ các phiên bản FortiOS mới như 7.2.12, 7.4.9, 7.6.4 trở lên, FortiGate thay đổi cách kiểm tra SAML.
Trước đây
Chỉ cần SAML Assertion được ký là FortiGate chấp nhận.
Sau khi nâng cấp
FortiGate yêu cầu cả SAML Response và SAML Assertion đều phải có chữ ký. Thiếu một trong hai là fail.
Khi đó, trong log debug của FortiGate thường xuất hiện các lỗi như:
- Signature element not found
- Failed to process response
- Failed to verify signature
Và bên phía người dùng, FortiClient sẽ đứng ở mốc 40%.
Cách xử lý cụ thể với Microsoft Entra ID
Lưu ý: Làm đúng thứ tự bên dưới, không cần “đoán”.
- Vào Microsoft Entra ID
- Chọn Enterprise Applications
- Mở ứng dụng FortiClient hoặc FortiGate SSL VPN
- Vào Single sign-on → chọn SAML
- Mở SAML Certificates
- Bấm Edit tại SAML Signing Certificate
- Ở Signing Option, chọn Sign SAML response and assertion
- Lưu lại và thử kết nối FortiClient

Trong đa số trường hợp, VPN sẽ hoạt động lại ngay sau bước này.
Vì sao chỉ cần chỉnh đúng một tùy chọn?
Bởi vì FortiGate kiểm tra chữ ký của toàn bộ SAML Response và đồng thời kiểm tra chữ ký bên trong SAML Assertion. Thiếu một trong hai, FortiGate không thể xác thực người dùng, dù user/password hoặc group mapping nhìn có vẻ đúng.
Điều đáng nói là lỗi này không hiển thị rõ cho người dùng, nên rất dễ bị xử lý sai hướng.
Một vài lưu ý khi triển khai thực tế
- Bật Sign SAML response and assertion là an toàn
- Có thể bật trước hoặc sau khi nâng cấp FortiOS
- Các phiên bản FortiOS cũ vẫn tương thích với cấu hình này
Nếu đã bật mà vẫn gặp lỗi, kiểm tra thêm:
- Certificate SAML có đúng và còn hạn không
- Thuật toán ký (nên dùng RSA-SHA256)
- Đồng bộ thời gian giữa FortiGate và IdP
Kết luận từ kinh nghiệm triển khai
Nếu FortiClient VPN đứng ở 40% sau khi nâng cấp FortiOS, đặc biệt khi dùng SAML với Microsoft Entra ID, đừng vội nghi ngờ firewall hay user.
Hãy kiểm tra cấu hình ký SAML phía IdP trước tiên. Rất nhiều hệ thống chỉ cần chỉnh đúng mục này là hoạt động lại bình thường.
Nếu lỗi SAML kiểu này lặp lại nhiều lần sau các đợt nâng cấp, đó là dấu hiệu hệ thống VPN đang cấu hình theo kiểu “chạy được là mừng”, chưa được rà soát bài bản. Khi đó, nên kiểm tra lại toàn bộ luồng xác thực để tránh sự cố tái diễn.
/file/media/uploads/article/ftg.jpg)
/file/media/uploads/article/cover.png)
/file/media/uploads/wan-fortigate.png)
/file/media/uploads/network-interface.jpg)
/file/media/uploads/firewall-policy.jpg)
/file/media/uploads/web-filter.jpg)
/file/media/uploads/app-control.png)
/file/media/uploads/antivirus.jpg)
/file/media/uploads/ssl-inspection.png)
/file/media/uploads/vpn-client-to-site.jpg)
/file/media/uploads/ipsec-vpn.jpg)
/file/media/uploads/ha.jpg)