TLS - правильное имя, однако большинство людей все еще называют его SSL.В PHP вы можете установить это соединение , используя CURL .
С клиентом TLS / SSL вам нужен только открытый ключ для проверки удаленного хоста.Этот открытый ключ является просто открытым, и не имеет значения, если он попадет в руки злоумышленника.На стороне сервера Apache имеет доступ как к открытому, так и к закрытому ключу.Эти ключи защищены обычными правами доступа к файлам.В системах * nix эти ключи обычно хранятся где-то в /etc/
, принадлежат процессу Apache, и лучше всего chmod 400
.
Самым простым методом аутентификации для клиентов будет простое имя пользователя / пароль.Вы можете использовать SSL для аутентификации клиента и сервера.Это потребует от вас хранения закрытого ключа где-нибудь, где ваше PHP-приложение имеет доступ, в идеале вне webroot с chmod 400
, но вы можете легко переименовать его в .php или поместить в папку с .htaccess, содержащую deny from all
.На стороне сервера вы можете проверить сертификат клиента, используя эти переменные среды .
Если вы просто хотите соединение TLS, а не HTTP.Затем вы можете использовать stream_context_set_option, установив Параметры контекста :
<?php
$context = stream_context_create();
$result = stream_context_set_option($context, 'ssl', 'local_cert', '/path/to/keys.pem');
// This line is needed if your cert has a passphrase
$result = stream_context_set_option($context, 'ssl', 'passphrase', 'pass_to_access_keys');
$socket = stream_socket_client('tls://'.$host.':443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
?>