Как я могу создать / установить SSL-сертификат для автономного сервера Datasnap Rest в локальной сети?

Я новичок в приобретении SSL и сертификатов, и это первый сервер данных, который я попытался сделать с помощью https/ssl.

У меня есть отдельный сервер Datasnap (XE4), и я хочу создать или получить SSL, который я могу использовать с ним, чтобы мои остальные сообщения были зашифрованы.

Нет ничего, кроме IP-адреса, связанного с компьютером, на котором работает этот сервер.

  • Как я могу получить подходящий SSL?
  • Могу ли я купить сертификат, который будет работать с IP-адресом?
  • в конце концов я хочу использовать переадресацию портов для доставки остальных запросов из Интернета на мой локально размещенный сервер. Как это влияет на процесс сертификации?

Спасибо Марк

2 ответа

Сначала приобретите SSL-сертификат у поставщика, такого как GoDaddy или RapidSSL. При покупке вы указываете доменное имя, которое будет представлять сертификат. Очевидно, что вы можете указать имя домена на любой IP-адрес, который вы хотите, настроив записи DNS для вашего домена. Я никогда не настраивал сертификат, чтобы он указывал на фактический IP-адрес, но думаю, что это возможно. Если вы хотите, чтобы ваш сервер принимал запросы из Интернета, я бы использовал доменное имя, чтобы вы могли изменить IP-адрес, если это необходимо.

При покупке вашего сертификата SSL вам нужно будет предоставить запрос на подпись сертификата (CSR), который вы генерируете на своем сервере, указав имя домена, для которого вы хотите использовать сертификат SSL. Вы можете использовать такую ​​утилиту, как утилита DigiCert ( http://www.digicert.com/util), чтобы создать CSR.

После того, как вы приобрели свой сертификат SSL, провайдер предложит вам загрузить промежуточный файл сертификата (или просто скопировать текст из электронного письма, так как это простой текстовый файл). Этот файл относится к выбранному вами доменному имени. Вам также необходимо загрузить корневой сертификат от поставщика SSL, это относится только к поставщику SSL, но не к вашему доменному имени. Третий файл, который вам нужен, это файл с закрытым ключом. Вы должны сгенерировать это, снова используя утилиту DigiCert. Вы делаете это, импортируя промежуточный сертификат в утилиту, затем нажимаете "Экспорт", чтобы создать закрытый ключ - выберите формат "ключ".

Теперь у вас есть 3 файла, например (имена файлов могут быть любыми):

intermediatecert.crt
rootcert.crt
privatekey.key

Для Delphi DataSnap вам необходимо использовать компонент TDSCertFiles и связать его с вашим компонентом TDSHTTPService, используя свойство CertFiles. В вашем компоненте TDSCertFiles установите следующие свойства:

CertFile: путь к вашему промежуточному файлу сертификата, например, C:\SSL\ промежуточный сертификат.crt
KeyFile: путь к вашему файлу закрытого ключа, например, C:\SSL\ privatekey.key
RootCertFile: путь к файлу корневого сертификата вашего провайдера, например C:\SSL\rootcert.crt

Я не знаю насчет XE4, но в XE2 есть ошибка с компонентом TDSCertFiles, что означает, что установка вышеуказанных 3 свойств во время выполнения не имеет никакого эффекта - он только когда-либо использует значения, установленные во время разработки - смотрите это: http://qc.embarcadero.com/wc/qcmain.aspx?d=107516

Наконец, поскольку DataSnap использует Indy, а Indy реализует SSL с использованием OpenSSL, вам необходимо иметь файлы библиотеки OpenSSL либо в той же папке, что и EXE-файл вашего сервера DataSnap, либо, по крайней мере, в PATH сервера. Вам нужны 2 файла libeay32.dll и ssleay32.dll, и вы можете скачать их здесь: http://indy.fulgan.com/SSL/openssl-1.0.1e-i386-win32.zip

Надеюсь, это поможет.

Если вы не хотите покупать коммерческий сертификат SSL, вы можете легко создавать свои собственные сертификаты, используя Центр сертификации Windows Server или OpenSSL. Использование OpenSSL из командной строки может быть утомительным, XCA ( http://xca.sourceforge.net/) - это хорошая оболочка для графического интерфейса, облегчающая управление сертификатами с помощью OpenSSL.

Вы можете создать самозаверяющий сертификат или создать правильную цепочку сертификатов - создав свой ЦС, а затем использовать его для создания сертификата сервера. Помните, что общее имя (CN) в сертификате должно совпадать с полным именем или IP-адресом компьютера (но было бы лучше назначить fqdn, и использовать сопоставление IP-адресов с именем <->, файла hosts будет достаточно, если вы не нет DNS). Сертификат должен иметь надлежащие атрибуты, но я не знаю, проверяет ли Datasnap их правильно.

Если вы не разбираетесь в сертификатах, я бы посоветовал вам прочитать некоторые учебники о них и об их управлении.

Другие вопросы по тегам