Загрузите данные двоичного потока из браузера с помощью PHP с веб-службой «загруженный файл поврежден»

Моя цель: я хочу сделать сертификат и загрузить его.

У меня есть следующий сценарий :

в схемах:

request : browser —> Страница PHP —> Веб-сервис PHP Restore —> bash

ответ : bash —> PHP Rest web service —> Страница PHP —> браузер

подробно :

  1. Веб-сервис REst, вызываемый с php-страницы, следующий:
    • делает сертификат в bash и экспортирует его как файл pfx.
    • возвращает сертификат из файла bash в виде потока байтов. hexdump -b $exportedcert
  2. возвращаемый вывод из веб-службы – байты (это только часть его):

    0000000 060 202 024 071 002 001 003 060 202 023 377 006 011 052 206 110 0000010 206 367 015 001 007 001 240 202 023 360 004 202 023 354 060 202 0000020 023 350 060 202 016 237 006 011 052 206 110 206 367 015 001 007 0000030 006 240 202 016 220 060 202 016 214 002 001 000 060 202 016 205 0000040 006 011 052 206 110 206 367 015 001 007 001 060 034 006 012 052 0000050 206 110 206 367 015 001 014 001 006 060 016 004 010 276 147 122 0000060 363 175 042 303 050 002 002 010 000 200 202 016 130 212 124 302 0000070 271 370 201 316 300 134 133 246 211 062 276 045 241 020 101 155 0000080 057 103 205 232 164 203 265 376 057 067 274 361 057 274 367 110 0000090 251 107 205 130 306 035 267 377 316 223 242 347 363 234 341 052 .....

  3. здесь, когда я укладываюсь! Мне нужно загрузить этот поток после преобразования его в двоичный файл. Я пробовал много кодов, и я не получаю результатов.

      function hex2bin($data) { //function URL: http://fiddyp.co.uk/code-to-reverse-a-bin2hex-function/ //function author: Andy Bailey $len = strlen($data); for($i=0;$i<$len;$i+=2) { $newdata .= pack("C",hexdec(substr($data,$i,2))); } return $newdata; } $api_url = "http://mydomain/certificates"; try { // @url POST /client_cert $result = $pest->post('/client_cert', $data); $res=explode('"', $result); $hex = hex2bin($res[1]); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=hex.crt"); header("Content-Type: application/octet-stream "); header("Content-Transfer-Encoding: binary");* // Read the file from disk echo $hex; } catch (Pest_NotFound $e) { // 404 echo "Certificate with Name = " . $certName_pfx . " doesn't exist!"; } 

сертификат поврежден или недействителен при добавлении его в браузер.

какие-либо предложения ?
PS: Я использую библиотеки Restler & Pest .