Сейчас, чтобы подключить несколько клиентов, мне приходится устанавливать одни и те же сертификаты (ca.crt и client.crt) на всех клиентских ноутбуках, чтобы они могли подключиться к SSTP-серверу Mikrotik роутера. И мне нужно устанавливать одни и те же ca.crt и server.crt сертификаты на Mikrotik роутере, чтобы можно было использовать разные секреты для всех клиентов.
Я хочу: чтобы можно было создавать разные сертификаты с разными сроками действия для всех клиентов, которые подключаются к одному и тому же SSTP-серверу. Возможно ли это в SSTP VPN?
В каждом клиенте можно использовать разные клиентские сертификаты, если они подписаны одним и тем же CA. Сервер: CA.crt + Server.crt (подписан CA) + Server.key Клиент1: CA.crt + Client1.crt (подписан CA) + Client1.key Клиент2: CA.crt + Client2.crt (подписан CA) + Client2.key До сих пор использовал так без проблем на SSTP до версии 6.7, так как в версии 6.9 что-то сломано в стеке шифрования. Работает и с OVPN.
SSTP работает не так, как я ожидал. Я создал сертификат вручную, следуя этой ссылке: http://wiki.mikrotik.com/wiki/Manual:Create_Certificates#Import_certificates. Сертификаты установлены на SSTP сервере: server.crt + ca.crt. Сертификаты установлены на SSTP клиенте: client.crt + ca.crt. Сертификат выбран на SSTP сервере: ca.crt (если я выбираю server.crt, соединение не устанавливается). На SSTP клиенте ca.crt в TrustedRootCertificates, client.crt в Personal. Независимо от того, установлен ли client.crt или нет, соединение устанавливается после импорта ca.crt в TrustedRootCertificate, так как SSTP сервер выбрал ca.crt. Получается, после установки ca.crt с обеих сторон, нет необходимости устанавливать server.crt и client.crt. Если я импортирую и выбираю server.crt на SSTP сервере и импортирую client.crt в Personal на стороне клиента, соединение не устанавливается.
Похоже, вы говорите про импорт ca.crt в TrustedRootCertificate, значит, клиенты у вас виндовс. Насколько я знаю, Microsoft не поддерживает двухстороннюю проверку сертификатов. Клиент Microsoft просто проверяет, подписан ли сертификат сервера CA из доверенного корневого списка. Это также указано в документации http://wiki.mikrotik.com/wiki/Manual:Interface/SSTP#Certificates
Как ты называешь server.crt, ca.crt и client.crt – это сертификаты с ключом (общественной и частной частью сертификата) или нет? Если ты вводишь полный сертификат CA (с его ключом) с обеих сторон, то это объяснит, почему все работает в твоей конфигурации. Ни у сервера, ни у клиентов не должно быть частной части CA, только общественная (то, что я называю ca.crt). Частная часть (ca.key) должна использоваться только на другом компьютере исключительно для подписи сертификатов клиента и сервера. Чтобы суммировать то, что я написал выше: на сервере у тебя должны быть общественные сертификаты для CA и сервера, и частный ключ для сервера. Сервер должен быть сертификатом, подписанным CA. На клиенте у тебя должны быть общественные сертификаты для CA и клиента, и частный ключ для клиента. Сертификат клиента должен быть подписан CA.