Я использую аутентификацию CAS на одном сервере, а веб-сайт, который должен быть защищен на отдельном сервере в моей локальной сети.
Когда я запускал и CAS, и Apache на одном сервере, они работали нормально. Когда я разделил их на два разных физических хоста, они больше не работают.
CAS-вход в систему работает нормально, но когда меня перенаправляют обратно на мой apache после входа в систему, я получаю следующее в журнале apache:
"mod_auth_cas: Could not perform SSL handshake with example.casserver.com (check CASCertificatePath)".
Я проверил CASCertificatePath и убедился, что он указывает на правильный сертификат (сертификат CAS-сервера). Я получил сертификат, скопировав его с cas-host на apache-host, и я убедился, что файл доступен для чтения, а URL-адрес разрешен и правильный.
Кто-нибудь знает, что может быть не так?
Поскольку я делаю это только в ограниченной локальной сети, нет смысла привлекать CA, поэтому сертификат, используемый CAS-сервером, представляет собой простой самоподписанный сертификат, созданный jdk-tool:
keytool -genkey -keyalg "RSA" -dname
Это проблема? Требует ли mod_auth_cas, чтобы сертификат был подписан ЦС, например, путем создания моего собственного ЦС для сети с помощью TinyCA2?
Я нашел решение своей проблемы. Моя конфигурация apache и cas была правильной, но ошибка в OpenSKD помешала правильному извлечению сертификата в TLSv1. Я обнаружил это при отладке своих портов SSL с помощью «openssl s_client», который является отличным инструментом для отладки в подобных ситуациях.
Я удалил OpenSDK, установил SunSDK и вместо этого повторно импортировал сертификаты в доверенный сервер sun, и все работает как шарм.