Recent

Author Topic: HTTPS-сервер с ГОСТ-сертификатом  (Read 4909 times)

Arvur

  • Jr. Member
  • **
  • Posts: 50
    • My GitHub
HTTPS-сервер с ГОСТ-сертификатом
« on: July 18, 2025, 11:29:24 pm »
Доброго времени суток!

Застрял на задачке из сабжа. Казалось бы, собирай gost-engine, подключай к OpenSSL и взлетай... Не тут-то было.
В Ararat Synapse жестко прошит RSA, поддержки engine-ов нет. В Indy, как я понял то же. В ICS поддержка openssl engines была когда-то давно, потом выпилили.
Кто-нибудь решал этот вопрос? Буду благодарен за совет.

P.S. Вариант делать через WinHTTP выглядит жизнеспособно, но это не кросс-платформенно. А нужно хотя бы еще Linux. К тому же привязка к платному CryptoPro. Пришлось отказаться.

n7800

  • Hero Member
  • *****
  • Posts: 692
  • Lazarus IDE contributor
    • GitLab profile
Re: HTTPS-сервер с ГОСТ-сертификатом
« Reply #1 on: July 25, 2025, 12:19:30 am »
Возможно вам стоит спросить на англоязычной доске форума? Там гораздо больше пользователей.

Или воспользуйтесь обратной связью с самим проектом Synapse: http://www.ararat.cz/synapse/doku.php/support

Thaddy

  • Hero Member
  • *****
  • Posts: 19150
  • Glad to be alive.
Re: HTTPS-сервер с ГОСТ-сертификатом
« Reply #2 on: July 25, 2025, 07:56:56 am »
I see the reference implementation is build against openssl 3. In that case you may have more luck with Tfphttpclient, besides that is a standard library and in my opinion better than synapse or indy anyway.
objects are fine constructs. You can even initialize them with constructors.

Arvur

  • Jr. Member
  • **
  • Posts: 50
    • My GitHub
Re: HTTPS-сервер с ГОСТ-сертификатом
« Reply #3 on: July 28, 2025, 11:54:21 am »
Возможно вам стоит спросить на англоязычной доске форума? Там гораздо больше пользователей.
Или воспользуйтесь обратной связью с самим проектом Synapse
И им всем не надо по ГОСТ-у ) Я задавал этот вопрос и на github, и на sourceforge - тишина.

I see the reference implementation is build against openssl 3. In that case you may have more luck with Tfphttpclient, besides that is a standard library and in my opinion better than synapse or indy anyway.
Thanks for your support! fcl-web uses openssl package which is based on Ararat Synapse. I've looked into it - no engines support in code.

7bit

  • New Member
  • *
  • Posts: 24
Re: HTTPS-сервер с ГОСТ-сертификатом
« Reply #4 on: October 16, 2025, 09:24:44 am »
А если использовать уже готовый веб-сервер, например nginx, в качестве обратного прокси для вашего веб-сервера? Думаю, что в nginx не должно быть проблем с сертификатом.

В своем проекте я использую tfphttpserver, но у меня возникли проблемы при использовании https - сервер через случайные промежутки времени зависает. Я ничего с этим не мог поделать, поэтому для https использую nginx в качестве обратного прокси.

Raskaton

  • New Member
  • *
  • Posts: 27
Re: HTTPS-сервер с ГОСТ-сертификатом
« Reply #5 on: April 10, 2026, 06:29:36 pm »
...TFpHttpServer, но у меня возникли проблемы при использовании https - сервер через случайные промежутки времени зависает.
Сталкивался с похожим багом на Windows. Использовал TFpHttpServer для поднятия временного локального сервера для OAuth2 авторизации. Сервер после выполнения Free остаётся висеть в памяти. Если он запущен в потоке, то и поток висит. Не смог диагностировать баг, но решил очень просто. После отправки Free, выполнял, что-то вроде:
Code: Pascal  [Select][+][-]
  1. try
  2.   TFpHttpClient.Get('http://localhost:54321'); //kick server
  3. except
  4.   { Error will be rised, becouse server already stopped, but hanging in memory. Do nothing. After this server will be fully freed. }
  5. end;
  6.  
Странные зависания проявлялись только на Windows, и то не на всех версиях. Похоже не связано с выбором Http или Https.

По сабжу, наверное, надо написать свой unit вместо opensslsockets. Вроде как, в нём идёт инициализация библиотек, а значит можно вмешаться в процесс.
Или как-то вмешаться в функцию InitSSLInterface, по аналогии с вариантами из https://forum.lazarus.freepascal.org/index.php/topic,61008.0.html
Пакет "openssl-gost-engine1.1" в моём репо есть, и Chromium им прекрасно пользуется.

 

TinyPortal © 2005-2018