company_banner

Как убрать назойливое предупреждение о сертификате для RDP

  • Tutorial

Привет Хабр, это супер короткое и простое руководство для новичков о том, как подключаться по RDP по доменному имени, чтобы не вылезало назойливое предупреждение о сертификате, подписанным самим сервером. Нам понадобится WinAcme и домен.

Все, кто хоть раз пользовался RDP, видели эту надпись.


В руководстве приведены готовые команды для пущего удобства. Скопировал, вставил и заработало.

Так вот, это окно можно в принципе пропустить, если выдать сертификат подписанный сторонним, трастовым центром сертификации. В данном случае, Let’s Encrypt.

1. Добавляем А запись




Просто добавляем A запись и вписываем в неё IP адрес сервера. На этом работа с доменом окончена.

2. Качаем WinAcme


Качаем WinAcme с их сайта. Архив лучше всего распаковать туда, куда вы не доберетесь, исполняемые файлы и скрипты вам еще пригодятся в будущем для автоматического обновления сертификата. Лучше всего вытряхнуть архив в C:\WinAcme\.

3. Открываем 80 порт




Авторизация вашего сервера осуществляется по http, поэтому нам нужно открыть 80 порт. Для этого введите в Powershell команду:

New-NetFirewallRule -DisplayName 80-TCP-IN -Direction Inbound -Protocol TCP -Enabled True -LocalPort 80

4. Разрешаем выполнение скриптов


Чтобы WinAcme смог без проблем импортировать новый сертификат, нужно разрешить выполнение скриптов. Для этого переходив в папку /Scripts/



Перед запуском WinAcme нам нужно разрешить выполнение двух скриптов. Для этого двойным кликом запустите PSRDSCerts.bat из папки со скриптами.

5. Устанавливаем сертификат




Дальше скопируйте строку ниже и введите имя домена, по которому хотите подключатсяь к серверу и выполните команду.

C:\Winacme\wacs.exe --target manual --host VASHDOMAIN.RU --certificatestore My --installation script --installationsiteid 1 --script "Scripts\ImportRDListener.ps1" --scriptparameters "{CertThumbprint}"

После этого сертификат подписывающий домен встанет на место старого. Обновлять вручную ничего не нужно, через 60 дней программа продлит сертификат сама.

Готово! Вы великолепны и избавились от надоедливой ошибки.

А какие системные ошибки раздражают вас?

RUVDS.com
RUVDS – хостинг VDS/VPS серверов

Комментарии 33

    +2
    RDP наружу — небезопасно, что с сертификатом, что без.
    Прикройтесь хотя бы RDG.
    Ну и насколько мне известно, на 192.168.0.1 никто сертификат не выдаст, нужен внешний айпишник, до которого letsencrypt может сделать бэкконнект. Ну во всяком случае, так было года три назад.
      0
      Судя по 192.168.0.1 речь о внутренней сети. Как получить сертификат прописав A на адрес внутренней сети — и мне не понятно (но можно получить сертификат по внешнему IP, а потом вполне навесить на внутренний, к IP-адресу привязки нет).

      Сам не пробовал, но для скрытия данного окна можно попробовать добавить сертификат сервера в список доверенных CA, раз речь идет только о скрытии окна?
        0
        Только не сертификат сервера, а сертификат CA, которая выпустила сертификат этого сервера. Стандартные самоподписанные не работают вообще от слова совсем.
        Именно поэтому я и предлагаю RDG+WAP, там webapp proxy выступает в роли ssl offload сервера, и работает простая связка — внутри сети между целевым компом и рдг доверие на приватном пки и\или керберосе, та же история между рдг и вап, а от вап уже обычный ссл сертификат работает.

        Кому лень заморачиваться с поднятием ADFS только для публикации RDG — можно поднять хапрокси, оно бесплатно и практически в три клика. При этом, естественно, у него уже давным-давно есть нативная интеграция с acme.
      +5

      Ради решения проблемы заводим днс сервер, покупаем домен, настраиваем две зоны (локальную тоже нужно, ибо из локалки vashdomain.ru должен резолвиться по локальному ip), оголяем жопу в интернет, запускаем ещё один сервис — сертбота. Просто идеальное решение! Проще даже не придумать. И самое главное, при учете, что если вся настройка займет час, а клик по предупреждению 2 секунды, то решение начнет окупаться по времени лет через пять.


      ЗЫ думал что в статье написано как тупо отключить проверку сертификата и шифрованное соединение. В собственной локалке такое решение имеет место.
      А если уж хочется по правильному, то надо свой удостоверяющий центр поднять и подписывать им сертификаты с alternative subject names на 3 года. Да, вначале придется один CA сертификат в доверенные добавить, зато потом можно валидные сертификаты даже без доменного имени, удостоверив лишь локальный ip (хз принимает ли alt names rdp, но гугл хром на https://192.168.1.1 точно заходит без вопросов). А в качестве бонуса certbot не будет подогревать процессор 90% холостыми запусками.

        +1
        тоесть вариант один раз кликнуть и поставить галочку «Больш не выводить запрос...» никто даже не рассматривает, я правильно понял?

        После чего предупреждение будет появлятся раз в сколько-то там месяцев, когда самоподписный сертификат обновился.
          0
          Если у вас 1 сервер, то прекрасное решение. Но если их сотни, то куда проще добавить немного автоматизации в настройку и получить более удобный продукт.
            0
            а зачем на сотни серверов ходить по RDP? чтобы там мышкой галочки кликать? Ниразу не встречал за много лет пользователей которым надо было бы ходить по RDP на сотни серверов. (Максимальное кол-во серверов которое трогал руками вживую было около 30 000.)
              0
              Что скажете про VDI инфраструктуру? Разжёвывать не буду, думаю вы погуглите если не знаете что это.
        0
        На что люди готовы, лишь бы не ставить свой удостоверяющий центр у себя и разбираться с ним.
        Если работать исключительно через mstsc то такой запрос напрягает, да. Однако галку один раз поставить вообще не проблема.
        Когда у тебя сотня подключений через какой нить mRemoteNG или RDCMan то такой запрос благо, позволяющее не подключаться по ошибке к ненужному серверу потому что ты промахнулся при подключении.
          +1
          А просто установить внизу окна галочку и нажать Да уже становится старомодным?
            0
            Ну, не во всех клиентах эта галочка есть…
              0

              Должна быть опция установить его в Show Certificate

                –2
                Это не совсем то же, что «не показывать сообщение», или я не прав?
            +1
            Перед запуском WinAcme нам нужно разрешить выполнение двух скриптов. Для этого двойным кликом запустите PSRDSCerts.bat из папки со скриптами.
            Это, конечно, наверное, классно всё и работает, но не мешало бы объяснить что делает каждый скрипт.
            1. Добавляем А запись
            Не понятно откуда и зачем у нас домен для RDP? Без домена никак?
            через 60 дней программа продлит сертификат сама
            добавляет задачу в планировщик?
              –1
              на современных системах нельзя вроде поставить RDP сервер без домена.
                +1
                На 2019 можно.
                Не все плюшки работают, но сам сервер терминалов к использованию пригоден.
                  +2

                  На современных системах rdp сервер можно даже под линукс поднять

                    0
                    Нельзя организовать честным образом терминальный сервер с лицензированием полноценным. Обычный RDP для администрирования работает без проблем.
                      0
                      Можно
                        –1
                        Официально — нет. Можно обойти часть ограничений, но Майкрософт назовёт это неподдерживаемой конфигурацией. Ну и лицензии на пользователей в таком варианте тоже нельзя выдавать будет, только на устройства.
                  –1
                  remmina (+ wsl, x server)
                    0
                    Я бы делал чуть по другому. На бастион хосте бы получал сертификат и устанавливал его на нужном сервисе. Хотя я так и делаю. Свой PKI требует чтобы мы добавили СА на все устройства работающие с сервисом. Когда я приношу свой ноут или работаю удалённо, а так же на свой телефон я совсем не хочу добавлять СА, который не возможно защитить, как и подтверждать неизвестные мне сертификаты. Считаю что для всех сервисов бесплатное получение и обновление сертификата для SOHO и SMB сегмента от Let's Encrypt это хорошо.

                    Первая ссылка в гугле сразу дала нам более простое решение github.com/mdbraber/acmeproxy.
                      0

                      Это просто какой-то позор, данная статья.
                      Эх, хабр, хабр, куда мы катимся.


                      Правильные на мой взгляд решения уже озвучили выше.


                      1. Простой способ. Добавляем корневой сертификат (либо сам сертификат, если он самозаверенный) на клиентские компьютеры в список доверенных.


                      2. Более сложный (на самом деле не очень), но и более грамотный — это развернуть инфраструктуру PKI.



                      И последнее, научиться развертывать VPN сервис, это так просто, тем более с wireguard. И запретить самому себе выставлять критичные бизнес ресурсы (типа RDP) наружу, без VPN, как крайний признак дилетанства и профанства.

                        +1
                        Оба варианта ужасны, я не представляю как вы нормального специалиста заставите на личное устройство поставить корневые сертификаты ваши.
                          0
                          image

                          А в чем проблема вообще? Для меня твой вопрос примерно звучит так «Мы выделилили „нормальному“ специалисту кабинет, и дали ключи от входной двери офиса, как теперь заставить его повесить этот ключ от нашего офиса на его связку ключей».

                          Ну и раз вы делаете утверждение, что обы эти варианта «ужасны». То уж будьте добры, обяснить в чем именно заключается ужасность. Аргументируйте свою позицию.
                            +1
                            Поправил, не благодарите. «Мы выделили „нормальному“ специалисту кабинет, и дали ключ от входной двери офиса, как теперь заставить его поменять замок в его банковской ячейке, чтобы ключ от нашего офиса подходил ней?»
                              +1
                              Ответ очевиден — не использовать личные устройства для доступа к корпоративным ресурсам, как не соответствующим корпоративным политикам безопасности. Не благодарите.
                                0
                                То есть специалисту надо запретить пользоваться своими устройствами и навязать трудозатраты по сопровождению дополнительных, повышая риск человеческого фактора. Уменьшая объём выполняемых задач. И всё потому, что кто-то не разобрался в перекрёстных подписях сертификатов и поленился настроить бесплатный сервис. Как по мне с точки зрения бизнеса, увеличение рисков и трудозатрат на пустом месте из-за некваллифицированного персонала принимающего решение, это не выгодно.
                                  0
                                  Из той же оперы — зачем использовать сложные пароли, это же из надо запоминать, использовать менеджеры паролей, увеличивая трудозатраты по управлению ими. Давайте использовать 123456, просто и легко.

                                  Вот так для меня звучат твои слова.

                                  Дело в том, что нельзя выставлять RDP наружу. А через только VPN. А теперь ты занимаешься подменой понятий.

                                  Если ты выставляешь RDP наружу — ты дилетант. Как бы ты и чем бы себя не оправдывал.
                                    0
                                    Согласен, что нельзя рдп в интернет выставлять. Но это не отменяет того факта, что сертификаты надо нормально настраивать.

                                    А по паролям, я использую сложные, в браузере, который и является моим менеджером паролей, который сам мне кнопочку даёт сгенерировать пароль. Проще в браузере ткнуть одну кнопку, чем нажимать 7 кнопок на клавиатуре. А ещё люди придумали токены авторизации и SSO. Один раз залогинился в комп вбив логин-пароль, и больше в браузере не вводишь, в рдп не вводишь и никаких тебе менеджеров паролей, потому что нет паролей.
                        +1
                        Вполне рабочее решение для частных случаев.
                          0
                          Да, в качестве демо-стенда на каком-нибудь хакатоне для начинающих взломщиков.
                          0
                          Попробуйте Apache Guacamole в кач-ве RDG\единой точки входа. Умеет кроме RDP еще VNC и SSH + LDAP.
                          P.s. Все же выставлять голый rdp во вне — неправильно. Пользуйте vpn. У меня vpn на pfsense\opnsense живет.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое