Pull to refresh

Comments 8

На этом все, теперь достаточно прописать клиенту и серверу пути к этим файлам, и вы сможете установить между ними защищенное соединение.

Что-то мне кажется, что этого будет недостаточно, как сервер и клиент проверят подлинность сертификатов друг друга, если корневой не сделать известным (кому, системе)?

Кроме того, не очень понятно, кому к чему пути прописывать? У вас 3 файла вроде получилось, причем dh2048.pem вообще никак не связан с первыми двумя, судя по коду его генерации.
Привет!
Я делаю всю эту систему чтобы шифровать траффик между сервером и мобильным приложением, корневой сертификат будет предустановлен в мобильное приложение.

Всего получилось 5 файлов:
Ключ для корневого сертификата rootca.key, его нужно убрать подальше, на сервере он не нужен.
Корневой сертификат rootca.crt, он будет на сервере, а также будет распространятся вместе с приложением.
Ключ для рабочего сертификата user.key он будет хранится и использоваться на сервере.
Рабочий сертификат user.crt он будет хранится и использоваться на сервере.

dh2048.pem никак не связан с сертификатами, но он требуется для работы сервера и загружается при его создании. Может быть возможно настроить контекст boost::asio::ssl::context так, чтобы не использовать dh-параметры, но я не пробовал.
А, ну вот так все понятно. Я бы добавил это в конец статьи, чтобы она была завершенной.
Здравствуйте, у меня не получается собрать OpenSSL, делал все по инструкции, ошибка — на скриншоте или же ниже:

D:\Lib & src\source\openssl-master\ssl\statem\statem_srvr.c: fatal error C1001: Внутренняя ошибка в файле компилятора.
(файл компилятора «f:\dd\vctools\compiler\utc\src\p2\main.c», строка 246)
Чтобы обойти эту неполадку, попытайтесь упростить или изменить программу в строках около указанной позиции.
Для получения дополнительных сведений выберите команду «Техническая поддержка»
в меню «Справка» Visual C++ или откройте файл справки технической поддержки.

D:\Lib & src\source\openssl-master\ssl\statem\statem_srvr.c: fatal error C1001: Внутренняя ошибка в файле компилятора.
(файл компилятора «f:\dd\vctools\compiler\utc\src\common\error.c», строка 794)
Чтобы обойти эту неполадку, попытайтесь упростить или изменить программу в строках около указанной позиции.
Для получения дополнительных сведений выберите команду «Техническая поддержка»
в меню «Справка» Visual C++ или откройте файл справки технической поддержки.
NMAKE: fatal error U1077: «C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.EXE»: возвращенный код «0x3»
Stop.

D:\Lib & src\source\openssl-master>
Добрый день!
Я погуглил вашу ошибку, люди жалуются на тот же баг вот тут и вот тут. Обе проблемы свежие, и появились в январе 2016 года.
Я вижу следующие решения:
— Собрать проект с помощью Visual Studio 2013
— Посмотреть какие последние изменения были в проекте OpenSSL в файле ssl\statem\statem_srvr.c и склонировать более раннюю версию. Судя по жалобам, все сломалось совсем недавно, буквально пару недель назад
— Попробовать обновить Visual Studio 14.0, может быть эта ошибка уже исправлена в обновлениях от Microsoft

К сожалению, это все что я могу предложить сейчас. Когда у меня будет время, я попробую посмотреть из-за чего возникла проблема и как ее исправить.
Эх. Не получилось у меня собрать по Вашим советам. Спасибо за отклик, я не ожидал, что ответите. Распишу по пунктам.
Дано:
хост с 7(64), VS2015 Update 1,
Виртуалка с 7(32), VS2013,
набор утилит по ссылкам выше из статьи, и openssl-1.0.0t. Мне не нужна последняя версия, хочу собрать cpp-netlib с ssh, она требует.
Попытка собрать openssl-1.0.0t, хост, проблемы:

На этапе компиляции cl, warning C4267: =: преобразование из «size_t» в «short»; возможна потеря данных. Error C2220: предупреждение обработано как ошибка… Исправлял копирование команды и удалением флага -WX. Было пару раз за компиляцию.
Далее буду честно копировать вывод с консоли, не хочу вставлять скриншоты.

link /nologo /subsystem:console /opt:ref /debug /out:out32\constant_time
_test.exe @C:\Users\120D~1\AppData\Local\Temp\nmC912.tmp
constant_time_test.obj: error LNK2019: ссылка на неразрешенный внешний символ _
__iob_func в функции _main
out32\constant_time_test.exe: fatal error LNK1120: неразрешенных внешних элемен
тов: 1
NMAKE: fatal error U1077: «C:\Program Files (x86)\Microsoft Visual Studio 14.0\
VC\BIN\link.EXE»: возвращенный код «0x460»
Stop.
Это не смог решить.

Попытка собрать openssl-1.0.0t, виртуалка, проблемы:

link /nologo /subsystem:console /opt:ref /debug /out:out32\constant_time
_test.exe @C:\Users\test\AppData\Local\Temp\nm99AC.tmp
constant_time_test.obj: error LNK2019: unresolved external symbol ___stdio_comm
on_vfprintf referenced in function __vfprintf_l
out32\constant_time_test.exe: fatal error LNK1120: 1 unresolved externals
NMAKE: fatal error U1077: '«C:\Program Files\Microsoft Visual Studio 12.0\VC\BI
N\link.EXE»': return code '0x460'
Stop.
Честно я не мастер что то собирать, именно сборкой из исходников занимаюсь не давно. Может я что то упускаю, или какие то моменты не освещены в статье, но очень хочется программировать, а не бороться с компилятором и линковщиком.
Обновляю свое сообщение — временным решением скачал собранные библиотеки, с ними собрал cpp-netlib.
Sign up to leave a comment.

Articles