Вопрос вот в чем: включил sstp-сервер в микротик, создал CA сертификат. Экспортировал его клиенту windows. Подключился успешно. Но при такой схеме соединение без сертификата тоже возможно. для проверки подключился соседним микротиком с помощью логин/пасс. Тогда я создал еще один сертификат, подписал его ранее созданным CA, добавил в Доверенные корневые центры в Windows и на сервере sstp включил опцию virify client certificated. При таком раскладе подключиться не удается.
В теории я понимаю, что необходим сертификат подписанный удостоверяющим центром , данный сертификат необходимо импортировать в ОС, а на стороне сервера сделать проверку клиентов на предмет наличия этого сертификата. Но как это применить в данной системе не понимаю пока еще.
user2k, на клиентской машине необходимо в настройках подключения указать клиентский сертификат (сертификат с закрытым ключём). Чтобы Винда не ругалась на сертфикат сервера, можно добавить CA сертификат (без закрытого ключа) на Винде в доверенные корневые центры сертификации.
Дмитрий Шицков,
В этом случае не можно, а нужно добавить в доверенные сертификат, только не сервера, а созданного CA, иначе сертификат сервера не пройдет проверку подлинности, которая в sstp обязательна.
Кроме того, в common name сертификата сервера должен быть указан или fqdn сервера, или его IP.
В случае sstp для аутентификации по клиентскому сертификату необходимо использовать EAP, который для vpn подключений микротиком не поддерживается, поэтому в тиках sstp возможен только через логин/пароль.
Исключение составляет подключение через sstp двух микротиков, в этом случае использование клиентского сертификата возможно.
Надо понимать, что sstp - проприетарный протокол майкрософт; все сторонние реализации работают не так, как "каноничная" реализация, т.е. виндовая. Отсюда и бардак. :F
UPD: впрочем, может я и не прав на счёт eap для vpn. Народ в интеретах пишет, что возможно. Но это нужно или иметь radius сервер, или городить его на микротике.
Года два-три назад это точно не работало.
В любом случае, про галку "verify client cert" забудьте, это не EAP, и не часть "каноничного" sstp, а велосипед от микротика, с виндовым клиентом работать не будет.
Константин Антонов, спасибо за инфу.
для меня правда остается непонятным момент с сертификатом ca, который надо добавлять в доверенные корневые центры. какова его роль? Его микротик проверяет на легитимность?
я имею ввиду самоподписанный сертификат, который я генерю на микротике и добавляю в виндовс, чтобы впн соединение клиента не ругалось.
user2k,
Клиент должен доверять серверу, а сервер должен доверять клиенту. В случае использования логина/пароля - сервер доверяет клиенту на основании логина/пароля, а вот клиент доверяет серверу на основании проверки его сертификата. Если клиент не доверяет CA, который подписал сертификат сервера - то он не может доверять и серверу.
При этом добавление в доверенные корневые центры сертификации сертификата сервера, в котором в key usage отсутствует cert sign - не поможет, т.к. такой сертификат не является сертификатом центра сертификации. Но если cert sign присутствует - то можно добавить в доверенные сам сертификат сервера.
Verify client certificate работает только при соединении через sstp двух микротиков. Windows для проверки подлинности клиенским сертификатом (для sstp) должен использовать EAP, который микротик не поддерживает ни в каком виде (для vpn).
Вариантов с проверкой клиентского сертификата в тиках при сочленении с виндовым клиентом только два: openvpn и ikev2
UPD: впрочем, может я и не прав на счёт eap для vpn. Народ в интеретах пишет, что возможно. Но это нужно или иметь radius сервер, или городить его на микротике.
Года два-три назад это точно не работало.