<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Evgenii Medvedev</title><author><name>Evgenii Medvedev</name></author><id>https://teletype.in/atom/jidckii</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/jidckii?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@jidckii?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jidckii"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/jidckii?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-14T03:43:41.643Z</updated><entry><id>jidckii:2SHIFceUJiP</id><link rel="alternate" type="text/html" href="https://teletype.in/@jidckii/2SHIFceUJiP?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jidckii"></link><title>Закрытие ИП/брисање предузетника в Сербии (Белград)</title><published>2025-08-04T09:56:31.514Z</published><updated>2025-08-04T09:56:31.514Z</updated><summary type="html">В гайде у Олега закрытие описано достаточно смазанно, так что постараюсь более полно описать. Возможно кому-то это сэкономит немого времени.</summary><content type="html">
  &lt;p id=&quot;VH0L&quot;&gt;В &lt;a href=&quot;https://www.srb.guide/guides/business/changing-data/#%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5-%D0%B8%D0%BF&quot; target=&quot;_blank&quot;&gt;гайде у Олега&lt;/a&gt; закрытие описано достаточно смазанно, так что постараюсь более полно описать. Возможно кому-то это сэкономит немого времени.&lt;/p&gt;
  &lt;p id=&quot;RQaf&quot;&gt;По пакету документов и шагам в гайде всё окей, вам понадобится:&lt;/p&gt;
  &lt;ol id=&quot;ald9&quot;&gt;
    &lt;li id=&quot;hEyH&quot;&gt;&lt;a href=&quot;https://www.srb.guide/guides/business/changing-data/#%D0%B7%D0%B0%D0%BC%D0%BE%D1%80%D0%BE%D0%B7%D0%BA%D0%B0%D1%80%D0%B0%D0%B7%D0%BC%D0%BE%D1%80%D0%BE%D0%B7%D0%BA%D0%B0-%D0%B8%D0%BF&quot; target=&quot;_blank&quot;&gt;Заморозить ИП в АПР&lt;/a&gt;.&lt;/li&gt;
    &lt;li id=&quot;Am4b&quot;&gt;Заплатить все основные налоги и получить Уверенье об отсутствии долгов из &lt;a href=&quot;https://maps.app.goo.gl/WR7Seqn9GM47vVC27&quot; target=&quot;_blank&quot;&gt;налоговой.&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;HQDf&quot;&gt;Заплатить &lt;a href=&quot;https://www.srb.guide/guides/business/eco-tax/&quot; target=&quot;_blank&quot;&gt;эко налог&lt;/a&gt; и получить Уверенье об отсутствии долгов из вашей опшины, в моём случае это был &lt;a href=&quot;https://maps.app.goo.gl/mJcFTgUCDnVboH9U9&quot; target=&quot;_blank&quot;&gt;Стари Град.&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Yrvd&quot;&gt;Подать в АПР заявление на закрытие ИП (Регистрациона пријава брисања предузетника), нужно будет приложить к нему уверенья из пунктов 2 и 3.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;ObR7&quot;&gt;После подачи заявления на заморозку можно сразу приступить к подготовке выполнения шагов 2 и 3. Вам 100% понадобится &lt;a href=&quot;https://www.srb.guide/guides/business/consent-id/&quot; target=&quot;_blank&quot;&gt;ConsentID&lt;/a&gt; или ЭП так как сделать выписки или подать заявку на эко налог можно только на портале. Не торопитесь выводить все динары с бизнес счёта, так как надо будет платить пошлины, эко налог, налоги и т.д. Это можно сделать уже после закрытия в банке или после подачи заявки в АПР, пока ещё не закрыли.&lt;/p&gt;
  &lt;ol id=&quot;MXOB&quot;&gt;
    &lt;li id=&quot;pyIq&quot;&gt;После подачи заявления на заморозку, сделайте &lt;a href=&quot;https://www.srb.guide/guides/business/tax/#%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D1%87%D1%82%D0%BE-%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8-%D0%BE%D0%BF%D0%BB%D0%B0%D1%87%D0%B5%D0%BD%D1%8B-%D0%B8-%D0%BD%D0%B5%D1%82-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BB%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8&quot; target=&quot;_blank&quot;&gt;выписку по задолжности&lt;/a&gt; по налогам. Например я ставил дату заморозки ИП 31.05.2025, по этому последний налог за заплатил 1 июня за май и всё, после этого больше не начисляют. Если есть задолжности, всё оплатите.&lt;/li&gt;
    &lt;li id=&quot;OqaE&quot;&gt;Идёте на &lt;a href=&quot;https://lpa.gov.rs/jisportal/homepage&quot; target=&quot;_blank&quot;&gt;https://lpa.gov.rs/jisportal/homepage&lt;/a&gt; и смотрите нет ли задолжности по эконалогу, если есть подаёте приложение (с 2025го годя это можно сделать только через этот портал), платите задолжность.&lt;/li&gt;
    &lt;li id=&quot;zp0H&quot;&gt;После получения Решения о заморозке ИП идёте в налоговую, с собой нужна будет копия договора с виртаульным адресом. Там на 2м этаже нужно будет заполнить вот такое заявление:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;ClC2&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/31/e0/31e0d47d-08b3-4562-99f2-08e42e1ca909.jpeg&quot; width=&quot;2623&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;nevp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/df/d1/dfd1fab3-ffa9-42b6-8b63-995e04c1316d.jpeg&quot; width=&quot;2670&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bm0C&quot;&gt;в этом заявлении написаны реквизиты для оплаты пошлины, идёте в ближайшую почту и платите (в БГ ближе всего это почта в АПР), возвращаетесь с квиточком. Подаёте: заявление, квиток о оплате пошлины, копия договора с вирт офисом. Мне сказали ждять 8 дней, но по факту через день уже было готово. В понедельник подал заявление, в среду забрал уверенье (забирать на 1м этаже). Но может просто было лето и по этому всё быстро.&lt;/p&gt;
  &lt;p id=&quot;Ym8a&quot;&gt;4. Не ждите готовности справки из налоговой, как было в гайде, сразу идите в опшину и просите сделать уверенье там. Они скажут, что надо заполнить приложение за текущий год, сделать это можно только на &lt;a href=&quot;https://lpa.gov.rs/jisportal/homepage&quot; target=&quot;_blank&quot;&gt;портале.&lt;/a&gt; После того как они увидят заявление, посчитают сколько надо доплатить задолжность в текущем году, платите, на следующий рабочий день, после того как они увидят оплату в системе, уверенье будет готово.&lt;/p&gt;
  &lt;figure id=&quot;qxks&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/19/73/197391a9-3ede-4ac0-9a89-378fb4039923.png&quot; width=&quot;1233&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Yzmk&quot;&gt;5. Ну дальше &lt;a href=&quot;https://www.srb.guide/guides/business/changing-data/#%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-7&quot; target=&quot;_blank&quot;&gt;всё просто&lt;/a&gt;, просто &lt;a href=&quot;https://apr.gov.rs/%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8/%D0%BF%D1%80%D0%B5%D0%B4%D1%83%D0%B7%D0%B5%D1%82%D0%BD%D0%B8%D1%86%D0%B8/%D0%BE%D0%B1%D1%80%D0%B0%D1%81%D1%86%D0%B8.1087.html#:~:text=%D0%9F%D1%80%D0%B5%D1%83%D0%B7%D0%B8%D0%BC%D0%B0%D1%9A%D0%B5-,%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%20%D0%BF%D1%80%D0%B8%D1%98%D0%B0%D0%B2%D0%B0%20%D0%B1%D1%80%D0%B8%D1%81%D0%B0%D1%9A%D0%B0%20%D0%BF%D1%80%D0%B5%D0%B4%D1%83%D0%B7%D0%B5%D1%82%D0%BD%D0%B8%D0%BA%D0%B0,-%D0%9E%D1%81%D1%82%D0%B0%D0%BB%D0%B8%20%D0%BE%D0%B1%D1%80%D0%B0%D1%81%D1%86%D0%B8&quot; target=&quot;_blank&quot;&gt;заполняете заявление&lt;/a&gt; и подаёте его в АПР, прилогаете 2 уверенья. &lt;a href=&quot;https://pretraga.apr.gov.rs/searchRegistracionePrijave&quot; target=&quot;_blank&quot;&gt;Ждёте&lt;/a&gt; как обычно до 5 дней, и получате решенье. Храните этот документ.&lt;/p&gt;
  &lt;p id=&quot;isoy&quot;&gt;6. С решеньем из АПР идите в банк и закрывайте счёт.&lt;/p&gt;
  &lt;p id=&quot;rruC&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;0GPO&quot;&gt;Я морозил ИП заранее, уезжал, а потом специально возвращался, чтобы закрыть. Так что по времени сложно сориентировать если всё делать сразу на месте. Сделать 2 уверенья заняло 1 неделю и то только потому, что я ждал 1е из налоговой, и думал с 2м будет быстрее, а в итоге языковой барьер прочие накладки растянули процесс с среды по понедельник. Но в целом можно примерно так прикинуть:&lt;/p&gt;
  &lt;ul id=&quot;OQMS&quot;&gt;
    &lt;li id=&quot;fTrh&quot;&gt;1 неделя запорозка ип&lt;/li&gt;
    &lt;li id=&quot;IuZ3&quot;&gt;1 неделя получение Уверений из налоговой и опшины (и может быть в эту же неделю можно успеть подать закрытие в АПР)&lt;/li&gt;
    &lt;li id=&quot;f9fR&quot;&gt;1 неделя ожидание решения о закрытии и закрытие счёта в банке.&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>jidckii:stunnel-gost-sdelka-signme</id><link rel="alternate" type="text/html" href="https://teletype.in/@jidckii/stunnel-gost-sdelka-signme?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jidckii"></link><title>Настройка stunnel ГОСТ TLS КриптоПро</title><published>2023-03-29T10:46:31.449Z</published><updated>2023-06-26T10:12:16.842Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/b8/a5/b8a58be5-d5cb-4c32-9f5e-374d5559ae7a.png"></media:thumbnail><category term="devops" label="devops"></category><summary type="html">&lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/90b/f5c/021/90bf5c02145f96530cff652511e8e140.png&quot;&gt;Недавно настраивал stunnel для СделкаРФ, постараюсь максимально подробно рассказать как настроить stunnel-gost который вы потом сможете c лёгкостью настроить у себя и запустить в вашем kubernetes.</summary><content type="html">
  &lt;p id=&quot;l2Ah&quot;&gt;Недавно настраивал stunnel для &lt;a href=&quot;https://сделка.рф/&quot; target=&quot;_blank&quot;&gt;СделкаРФ&lt;/a&gt;, постараюсь максимально подробно рассказать как настроить &lt;strong&gt;stunnel-gost&lt;/strong&gt; который вы потом сможете c лёгкостью настроить у себя и запустить в вашем kubernetes.&lt;/p&gt;
  &lt;h2 id=&quot;r1TA&quot;&gt;Введение&lt;/h2&gt;
  &lt;p id=&quot;dRbx&quot;&gt;Недавно наш партнёр &lt;a href=&quot;http://sign.me&quot; target=&quot;_blank&quot;&gt;sign.me&lt;/a&gt;, сообщил, что мы больше не сможем как люди ходить в &lt;a href=&quot;https://sign.me/static/docs/1.1/index.html&quot; target=&quot;_blank&quot;&gt;API&lt;/a&gt; по https c токеном, а обязаны ходить по ГОСТ TLS. Инструкций особо не дали, сказали идите на сайт криптопро, там всё понятно. &lt;s&gt;Как оказалось со знаком минус.&lt;/s&gt; Можете использовать Ngate, stunnel и ещё что-то. Ну и ещё добавили, что на текущий момент подойдёт любой сертификат из &lt;a href=&quot;http://testgost2012.cryptopro.ru/certsrv/&quot; target=&quot;_blank&quot;&gt;тестового УЦ ООО &amp;quot;КРИПТО-ПРО&amp;quot;&lt;/a&gt;. С осознанием сего, я пошёл разбираться.&lt;/p&gt;
  &lt;p id=&quot;RSM5&quot;&gt;Никакой человеческой документации или инструкций я не нашёл, всё пришлось собирать по кусочкам. Какие то инструкции есть, но всё это с середины и вообще без контекста как например &lt;a href=&quot;https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/79/0/kriptopro-stunnel--client-server&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;. На 2й день я нашёл на хабре статью &lt;a href=&quot;https://habr.com/ru/company/tele2/blog/674536/&quot; target=&quot;_blank&quot;&gt;Опыт интеграции с КриптоПро DSS поверх ГОСТ TLS&lt;/a&gt; и оформленный &lt;a href=&quot;https://github.com/maxineal/gost-stunnel&quot; target=&quot;_blank&quot;&gt;репозиторий&lt;/a&gt;. Огромное спасибо автору, это внесло кучу ясности, но не решило проблему так сразу.&lt;/p&gt;
  &lt;h2 id=&quot;ow9u&quot;&gt;Полный путь&lt;/h2&gt;
  &lt;p id=&quot;immA&quot;&gt;&lt;em&gt;Все действия локально я проводил на Ubuntu 22.04.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;OsLe&quot;&gt;И так поехали, нам потребуется локально установленный &lt;a href=&quot;https://cryptopro.ru/downloads&quot; target=&quot;_blank&quot;&gt;КриптоПро&lt;/a&gt;, обязательно с действующей лицензией, иначе при попытке экспорта сертификата будет ошибка:&lt;/p&gt;
  &lt;pre id=&quot;2pJD&quot;&gt;Error: export in PFX failed

License for this product is expired, not yet valid or corrupt. &lt;/pre&gt;
  &lt;p id=&quot;ybGA&quot;&gt;Купить лицензию можно у &lt;a href=&quot;https://ca.kontur.ru/&quot; target=&quot;_blank&quot;&gt;контура&lt;/a&gt; к примеру, полностью онлайн. Бессрочная лицензия на SCP 5.0 в июне 2023 стоит 2600₽.&lt;/p&gt;
  &lt;p id=&quot;c4mZ&quot;&gt;Все плагины браузера и т.д. После установки для удобства можно обновить PATH.&lt;/p&gt;
  &lt;pre id=&quot;wg0W&quot;&gt;export PATH=&amp;quot;/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:${PATH}&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;XIzc&quot;&gt;Идём в &lt;a href=&quot;http://testgost2012.cryptopro.ru/certsrv/&quot; target=&quot;_blank&quot;&gt;тестовый УЦ&lt;/a&gt;, скачиваем и устанавливаем CA&lt;/p&gt;
  &lt;figure id=&quot;Hs9m&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/90b/f5c/021/90bf5c02145f96530cff652511e8e140.png&quot; width=&quot;954&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Gwqf&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/779/bf7/72b/779bf772b6e7e98d4209be195bf4ccd1.png&quot; width=&quot;622&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;T6IJ&quot;&gt;Многие действия локально можно сделать и через GUI, но я буду приводить в пример консольные команды.&lt;/p&gt;
  &lt;figure id=&quot;6anK&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/5a9/596/b82/5a9596b82b9d8255c634de73528ea628.png&quot; width=&quot;1408&quot; /&gt;
    &lt;figcaption&gt;Установка CA через GUI&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;royH&quot;&gt;certmgr -install -file CA.crt -store mCA&lt;/pre&gt;
  &lt;p id=&quot;r9cK&quot;&gt;Теперь можно выпустить и установить ключ и сертификат&lt;/p&gt;
  &lt;figure id=&quot;Ar6F&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/51e/1e2/fb2/51e1e2fb2d1620412b758e3b16fb58e0.png&quot; width=&quot;767&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;HGly&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/0dc/a89/fbb/0dca89fbb280cf90e3dec3e2c4a980fa.png&quot; width=&quot;1316&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GC5A&quot;&gt;Заполняем все данные, обязательно выставляем галочку &lt;strong&gt;Пометить ключ как экспортируемый&lt;/strong&gt; для удобства также можно &lt;em&gt;Заданное пользователем имя контейнера ключа&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;0zn6&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/094/a66/a06/094a66a06bb5197a8d2ec18adb38774e.png&quot; width=&quot;921&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lNzh&quot;&gt;Нужно будет поводить мышкой, нажимать клавиши и ключ сгенерируется&lt;/p&gt;
  &lt;figure id=&quot;SFmd&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/395/7e6/49f/3957e649f37c198618f9265e8eb3720f.png&quot; width=&quot;1284&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YWSv&quot;&gt;Ключ и сертификат установятся локально и запросят установить пароль, сильно тут не мудрите &lt;code&gt;1234000&lt;/code&gt; будет окей.&lt;/p&gt;
  &lt;figure id=&quot;d5IP&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/edf/f36/c35/edff36c35a87dbd31b1fbdde7b71a91d.png&quot; width=&quot;555&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;KNwI&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/e86/d5b/bc1/e86d5bbc147228a27eef32599857b87f.png&quot; width=&quot;909&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RDXn&quot;&gt;Можно открыть GUI приложение и увидеть нужный контейнер и сертификат&lt;/p&gt;
  &lt;figure id=&quot;XTHR&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/791/a22/6c1/791a226c10437b1256d2ec49833ad42f.png&quot; width=&quot;1237&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;5jkK&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://habrastorage.org/getpro/habr/upload_files/21f/c06/925/21fc069256ceb038c1b63b1799a4582c.png&quot; width=&quot;1398&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Svg6&quot;&gt;Вы можете попробовать экспортировать ключи из GUI но у меня этот вариант не сработал, так как потом при импорте ругалось на не верный PIN, по этому рекомендую всё делать из консоли.&lt;/p&gt;
  &lt;p id=&quot;fUYn&quot;&gt;Узнаём имя контейнера:&lt;/p&gt;
  &lt;pre id=&quot;wR3l&quot;&gt;csptest -keys -enum -verifyc -fqcn -un | grep &amp;#x27;HDIMAGE&amp;#x27;&lt;/pre&gt;
  &lt;p id=&quot;lH1v&quot;&gt;Копируем имя контейнера и экспортируем ключ:&lt;/p&gt;
  &lt;pre id=&quot;aKUH&quot;&gt;certmgr -export -pfx -container &amp;#x27;\\.\HDIMAGE\HDIMAGE\\sdelkars.000\913B&amp;#x27; -dest certificate.pfx -pin 1234000&lt;/pre&gt;
  &lt;p id=&quot;DWpz&quot;&gt;Отлично, теперь можно собрать контейнер и проверить работу из него. В контейнере нам потребуется скаченный ранее cертификат &lt;code&gt;CA.crt&lt;/code&gt; и экспортированный ключ &lt;code&gt;certificate.pfx&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;lL93&quot;&gt;Я просто приведу в пример код своего докер файла, хотя вы можете сделать так, как предложил Максим у себя в репозитории &lt;a href=&quot;https://github.com/maxineal/gost-stunnel&quot; target=&quot;_blank&quot;&gt;https://github.com/maxineal/gost-stunnel&lt;/a&gt;.&lt;br /&gt;Отличие состоит в том, что мы выпекам образ с сертификатом внутри, а Маским создаёт его в рантайме. Возможно позже мы тоже будем так делать, а пока просто периодически коммитим свежий CA и PFX в репозиторий и собираем новый контейнер.&lt;/p&gt;
  &lt;pre id=&quot;On3G&quot;&gt;FROM debian:11-slim
WORKDIR /etc/stunnel/

ENV PATH=&amp;quot;/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:${PATH}&amp;quot;

# dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN set -x \
    &amp;amp;&amp;amp; apt-get update \
    &amp;amp;&amp;amp; apt-get install --no-install-recommends -y ca-certificates opensc openssl procps tzdata tar gzip curl wget lsb-base \
    &amp;amp;&amp;amp; dpkg-reconfigure --frontend noninteractive tzdata \
    &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*

# install cryptopro csp
COPY cprocsp/linux-amd64_deb.tgz /tmp/linux-amd64_deb.tgz
RUN set -x \
    &amp;amp;&amp;amp; tar -xzvf /tmp/linux-amd64_deb.tgz -C /tmp \
    &amp;amp;&amp;amp; /tmp/linux-amd64_deb/install.sh cprocsp-stunnel \
    &amp;amp;&amp;amp; rm -rf /tmp/*

COPY conf/ /etc/stunnel/
COPY bin/entrypoint.sh /entrypoint.sh

ARG STUNNEL_CERTIFICATE_PIN_CODE=&amp;quot;12340000&amp;quot;
# Экспорт сертификата
RUN set -x \
    # импорт CA
    &amp;amp;&amp;amp; certmgr -install -file /etc/stunnel/tls/CA.crt -store mCA \
    # импорт сертификата с закрытым ключом
    &amp;amp;&amp;amp; certmgr -install -pfx -file /etc/stunnel/tls/certificate.pfx -pin &amp;quot;${STUNNEL_CERTIFICATE_PIN_CODE}&amp;quot; -silent \
    # определение контейнера-хранилища закрытых ключей
    &amp;amp;&amp;amp; containerName=$(csptest -keys -enum -verifyc -fqcn -un | grep &amp;#x27;HDIMAGE&amp;#x27; | awk -F&amp;#x27;|&amp;#x27; &amp;#x27;{print $2}&amp;#x27; | head -1) \
    # установка сертификата клиента
    &amp;amp;&amp;amp; certmgr -install -cont &amp;quot;${containerName}&amp;quot; -silent \
    # экспорт сертификата для stunnel
    &amp;amp;&amp;amp; certmgr -export -dest /etc/stunnel/tls/client.crt -container &amp;quot;${containerName}&amp;quot;

ENTRYPOINT [&amp;quot;/entrypoint.sh&amp;quot;]
CMD [&amp;quot;stunnel_thread&amp;quot;, &amp;quot;/etc/stunnel/stunnel.conf&amp;quot;]
&lt;/pre&gt;
  &lt;p id=&quot;Em2q&quot;&gt;также приведу пример конфига для stunnel.conf&lt;/p&gt;
  &lt;pre id=&quot;Ibx3&quot;&gt;pid=/run/stunnel.pid
foreground=yes
debug=5

[https]
client= yes
accept= 8080
connect= gost.test.sign.me:443
CAFile=/etc/stunnel/tls/CA.cer
cert=/etc/stunnel/tls/client.crt&lt;/pre&gt;
  &lt;p id=&quot;xkUu&quot;&gt;Посмотреть описание сертификата и его время действия можно через &lt;code&gt;openssl &lt;/code&gt;&lt;/p&gt;
  &lt;pre id=&quot;VgA1&quot;&gt;openssl x509 -in client.crt -text -inform DER -noout

Certificate:
    Data:
        Version: 3 (0x2)
...
        Validity
            Not Before: Mar 22 10:55:43 2023 GMT
            Not After : Jun 22 11:05:43 2023 GMT
...
&lt;/pre&gt;
  &lt;h3 id=&quot;TF16&quot;&gt;Проверка работы&lt;/h3&gt;
  &lt;p id=&quot;pl98&quot;&gt;Запускаем собранный контейнер&lt;/p&gt;
  &lt;pre id=&quot;lT4k&quot;&gt;docker run --rm --net host stunnel-gost:latest&lt;/pre&gt;
  &lt;p id=&quot;Vw5c&quot;&gt;Проверяем работу&lt;/p&gt;
  &lt;pre id=&quot;fmMA&quot;&gt;curl -sSL -XPOST -d &amp;quot;{}&amp;quot; -H &amp;quot;Host: gost.sign.me&amp;quot; http://localhost:8080/register/precheck/ -m 10&lt;/pre&gt;
  &lt;p id=&quot;tm6l&quot;&gt;Должно вернуться http 401 а в теле &lt;code&gt;Invalid API key&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;J1Tp&quot;&gt;Сессия вяжется не сразу, по этому может потребоваться 3-4 первых запроса.&lt;br /&gt;По этому в кубе для startupProbe мы сделали вот так&lt;/p&gt;
  &lt;pre id=&quot;XcVp&quot;&gt;  exec:
    command:
      - &amp;quot;bash&amp;quot;
      - &amp;quot;-c&amp;quot;
      - &amp;#x27;curl -sSL -XPOST -d &amp;quot;{}&amp;quot; -H &amp;quot;Host: gost.test.sign.me&amp;quot; http://localhost:8080/register/precheck/ -m 10 2&amp;gt;&amp;amp;1 | grep -q &amp;quot;Invalid API key&amp;quot;&amp;#x27;&lt;/pre&gt;
  &lt;p id=&quot;wE1T&quot;&gt;В логах будет что то типа этого:&lt;/p&gt;
  &lt;pre id=&quot;5obM&quot;&gt;Configuring stunnel...
Starting stunnel
2023.03.23 09:56:02 LOG5[1:140305597050688]: stunnel 4.18 on x86_64-pc-linux-gnu
2023.03.23 09:56:02 LOG5[1:140305597050688]: Threading:PTHREAD Sockets:POLL,IPv6
2023.03.23 09:56:02 LOG5[1:140305597050688]: 0 clients allowed
2023.03.23 09:57:07 LOG5[1:140305596815104]: https connected from 127.0.0.1:42768
2023.03.23 09:57:07 LOG5[1:140305596815104]: try to read the client certificate
2023.03.23 09:57:07 LOG3[1:140305596815104]: Credentials complete
2023.03.23 09:57:08 LOG5[1:140305596815104]: 3607 bytes of handshake(in handshake loop) data received.
2023.03.23 09:57:08 LOG5[1:140305596815104]: 1619 bytes of handshake data sent
2023.03.23 09:57:08 LOG5[1:140305596815104]: 1582 bytes of handshake(in handshake loop) data received.
2023.03.23 09:57:08 LOG5[1:140305596815104]: Handshake was successful
2023.03.23 09:57:08 LOG5[1:140305596815104]: PerformClientHandshake finish 
2023.03.23 09:57:08 LOG5[1:140305596815104]: Server subject: CN=ООО СМ, C=RU, S=77 Москва, L=Москва, STREET=Москва Мичуринский проспект 45, O=ООО СМ, OU=IT, ИНН ЮЛ=7719795020, ОГРН=1117746908597
2023.03.23 09:57:08 LOG5[1:140305596815104]: Server issuer: ОГРН=1105260001175, ИНН=005260270696, STREET=&amp;quot;ул. Радио, дом 24, корпус 1, помещение V, комната 23&amp;quot;, E=ca@iecp.ru, L=г. Москва, S=77 Москва, C=RU, OU=Удостоверяющий центр, O=&amp;quot;Акционерное общество &amp;quot;&amp;quot;Аналитический Центр&amp;quot;&amp;quot;&amp;quot;, CN=&amp;quot;АО &amp;quot;&amp;quot;Аналитический Центр&amp;quot;&amp;quot;&amp;quot;
2023.03.23 09:57:08 LOG5[1:140305596815104]: CA subject: ОГРН=1105260001175, ИНН=005260270696, STREET=&amp;quot;ул. Радио, дом 24, корпус 1, помещение V, комната 23&amp;quot;, E=ca@iecp.ru, L=г. Москва, S=77 Москва, C=RU, OU=Удостоверяющий центр, O=&amp;quot;Акционерное общество &amp;quot;&amp;quot;Аналитический Центр&amp;quot;&amp;quot;&amp;quot;, CN=&amp;quot;АО &amp;quot;&amp;quot;Аналитический Центр&amp;quot;&amp;quot;&amp;quot;
2023.03.23 09:57:08 LOG5[1:140305596815104]: CA issuer: E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET=&amp;quot;улица Тверская, дом 7&amp;quot;, O=Минкомсвязь России, ОГРН=1047702026701, ИНН=007710474375, CN=Минкомсвязь России
2023.03.23 09:57:19 LOG5[1:140305581950720]: https connected from 127.0.0.1:37770
2023.03.23 09:57:19 LOG5[1:140305581950720]: try to read the client certificate
2023.03.23 09:57:19 LOG3[1:140305581950720]: Credentials complete
&lt;/pre&gt;
  &lt;h2 id=&quot;xVts&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;xO0o&quot;&gt;Не сложно догадаться, что далее мы просто подняли ингресс и включили аннотацию &lt;code&gt;nginx.ingress.kubernetes.io/upstream-vhost&lt;/code&gt;. Переключили эндпоинт в конфиге бэкенда и продолжили работать как раньше, только теперь есть 1 дополнительный &lt;em&gt;сервис/прослойка/точка отказа&lt;/em&gt;. Хотя можно было бы и посадить этот туннель сайткаром в под с каждым бэкендом, но тогда мониторить это станет значительно сложнее да и незачем плодить количество процессов. Вопрос мониторинга срока действия данных сертификатов тоже актуален, есть идея поднять nginx в этом же контейнере на отдельном порту и настроить пробу этого эндпоинта через blackbox exporter, или написать свой экспортер для этого случая, но это в другой серии ... :)&lt;/p&gt;

</content></entry><entry><id>jidckii:Vodafone_Albania_router_CBN_CG7486E</id><link rel="alternate" type="text/html" href="https://teletype.in/@jidckii/Vodafone_Albania_router_CBN_CG7486E?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jidckii"></link><title>Default login / password for Vodafone Albania router cbn CG7486E</title><published>2022-05-31T10:22:59.045Z</published><updated>2022-05-31T10:22:59.045Z</updated><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/0e/1b/0e1bd69a-5027-4f5f-ace3-d5b0c7d6bdb2.png&quot;&gt;Username: Vodafone 
Password: VodafoneAL</summary><content type="html">
  &lt;figure id=&quot;gBmZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0e/1b/0e1bd69a-5027-4f5f-ace3-d5b0c7d6bdb2.png&quot; width=&quot;472&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fByJ&quot;&gt;Username: &lt;code&gt;Vodafone&lt;/code&gt; &lt;br /&gt;Password: &lt;code&gt;VodafoneAL&lt;/code&gt;&lt;/p&gt;

</content></entry><entry><id>jidckii:screencasts_formater</id><link rel="alternate" type="text/html" href="https://teletype.in/@jidckii/screencasts_formater?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jidckii"></link><title>Автоматический скринкаст форматер webm &gt; mp4 для Ubuntu 22.04</title><published>2022-05-23T14:54:23.256Z</published><updated>2022-05-23T18:26:18.673Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/1a/fc/1afc735a-5108-4fde-980d-3649457dbb4f.png"></media:thumbnail><category term="topic5581" label="Ubuntu"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/82/c9/82c9e8de-e8d3-42a5-a3d7-f6398fb2c8a6.png&quot;&gt;В Ubuntu 20.04 появился штатный скринкастер для записи экрана. Активируется на ctrl+alt+shift+r. В 22.04 подвезли неплохой интерфейс и пользоваться этим при нажатии на PrintScr стало приятно и удобно.</summary><content type="html">
  &lt;p id=&quot;Wmd7&quot;&gt;В Ubuntu 20.04 появился штатный скринкастер для записи экрана. Активируется на &lt;code&gt;ctrl+alt+shift+r&lt;/code&gt;. В 22.04 подвезли неплохой интерфейс и пользоваться этим при нажатии на &lt;em&gt;PrintScr&lt;/em&gt; стало приятно и удобно.&lt;/p&gt;
  &lt;figure id=&quot;xGDW&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/82/c9/82c9e8de-e8d3-42a5-a3d7-f6398fb2c8a6.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;rpkF&quot;&gt;Но есть проблема,&lt;em&gt; п&lt;/em&gt;ишет он в каталог &lt;em&gt;/home/&amp;lt;user&amp;gt;/Videos/Screencasts/&lt;/em&gt; файл в формате &lt;strong&gt;webm&lt;/strong&gt; с кодеком &lt;strong&gt;vp8&lt;/strong&gt;, переопределить это нельзя, скорее всего так сделано в угоду свободным технологиям и лицензиям. Но при отправке файла к примеру в телеграм, он не играется встроенным плеером, ибо в мире всё заточено на &lt;strong&gt;h264&lt;/strong&gt; и &lt;strong&gt;mp4&lt;/strong&gt;(не свободные стандарты), так исторически сложилось.&lt;/p&gt;
  &lt;p id=&quot;aESA&quot;&gt;И так, нам нужно конвертировать &lt;strong&gt;webm(vp8)&lt;/strong&gt; в &lt;strong&gt;mp4(h264)&lt;/strong&gt;. Смена контейнера, операция копеечная, а вот транскодирование это дорого для CPU. &lt;em&gt;Тут надо сделать отступление, что я работаю на Lenovo ThinkPad e490 с встроенной графикой (iGPU) от intel.&lt;/em&gt; Рас у меня есть GPU значит смену кодека(транскодирование) vp8&amp;gt;h264 можно сделать аппаратно.&lt;/p&gt;
  &lt;p id=&quot;jqTx&quot;&gt;Пишем небольшой скрипт и кладём его в &lt;code&gt;/home/&amp;lt;user&amp;gt;/.bin/&lt;/code&gt;&lt;/p&gt;
  &lt;figure&gt;
    &lt;script src=&quot;https://gist.github.com/jidckii/6f05a2e5c3b25a916c7fe7a845c1749d.js&quot;&gt;&lt;/script&gt;
    &lt;figcaption&gt;screencasts_formater.sh&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;iKhK&quot;&gt;Что тут происходит? Утилита &lt;code&gt;inotifywait&lt;/code&gt; следит за появлением в каталоге новых файлов и как только файл закончил писаться, в работу вступает ffmpeg и конвертирует наш файл, затем старый файл удаляется.&lt;/p&gt;
  &lt;p id=&quot;Q4bw&quot;&gt;Можно обойтись без докера, самостоятельно собрать ffmpeg с поддержкой vaapi и положить его локально, но зачем, когда есть готовая сборка, а девайз можно спокойно пробросить.&lt;/p&gt;
  &lt;p id=&quot;GpME&quot;&gt;Далее добавляем в автозапуск через &lt;em&gt;Startup Applications&lt;/em&gt; и перелгиниваемся.&lt;/p&gt;
  &lt;figure id=&quot;uvHL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6a/51/6a51be43-fe80-4fd6-a7cc-63fde9bad427.png&quot; width=&quot;672&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;FYxJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a9/b0/a9b031fd-4fc5-4522-8502-0b74f26f5458.png&quot; width=&quot;463&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;U0Dc&quot;&gt;Теперь конвертация будет автоматической и для коротких видео, практически моментальной.&lt;/p&gt;

</content></entry></feed>