Linuchs: php-Fehler beim Abruf eines Headers

Moin,

bei Aufruf [dieser Audio-Datei](https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3) spielt Firefox sie ab.

Mir gelingt es aber nicht, per PHP ihre Existenz zu prüfen:

110 echo "1. " . quote2html($url)."<br>";
111 echo "<pre>";
112     print_r(get_headers($url));
113     print_r(get_headers($url, 1));
114 echo "</pre>";

Meldung:

1. https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages:
error:1407742E:SSL routines:func(119):reason(1070) in /home/osmer/domains/remso.de/public_html/500/p532.php on line 112

Warning: get_headers(): Failed to enable crypto in /home/osmer/domains/remso.de/public_html/500/p532.php on line 112

Warning: get_headers(https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3): failed to open stream: operation failed in /home/osmer/domains/remso.de/public_html/500/p532.php on line 112

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages:
error:1407742E:SSL routines:func(119):reason(1070) in /home/osmer/domains/remso.de/public_html/500/p532.php on line 113

Warning: get_headers(): Failed to enable crypto in /home/osmer/domains/remso.de/public_html/500/p532.php on line 113

Warning: get_headers(https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3): failed to open stream: operation failed in /home/osmer/domains/remso.de/public_html/500/p532.php on line 113

Scheint irgendwas mit https zu tun zu haben? Was muss ich tun, um den Fehler zu vermeiden?

Gruß, Linuchs

  1. Hello,

    Du hast mich im ersten Moment doch verwirrt. Aberget_headers() ist KEIN Head-Request, den Du vermutlich hier benötigst?

    Ich habe Dich so verstanden, dass Du auf einem entferten Server die Existenz der Datei prüfen willst?

    Ich habe da mal einen etwas komplexeren Head-Request (mit Umleitungskette usw.) gebastelt, der eigentlich noch im Archiv sein sollte.

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  2. Hm. Ich hoffe mal, Du hast lediglich 'www.shantychor-hallerschipper.de' durch 'localhost' oder '127.0.0.1' ausgetauscht: Dann stimmen nur die Schlüssel nicht.

    Sonst liegt es an der PHP-Installation. Bei mir geht das hier nämlich.

    <?php
    $url = 'https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das%20gro%C3%9Fe%20Spiel.mp3';
    print_r( get_headers( $url, 1 ) );
    

    Ergebnis:

    Array
    (
        [0] => HTTP/1.1 200 OK
        [Date] => Fri, 08 Feb 2019 16:28:20 GMT
        [Server] => Apache/2.4.37 (Unix)
        [Upgrade] => h2,h2c
        [Connection] => Upgrade, close
        [Last-Modified] => Wed, 28 Feb 2018 13:41:24 GMT
        [ETag] => "32b2b5-56645e639221d"
        [Accept-Ranges] => bytes
        [Content-Length] => 3322549
        [Content-Type] => audio/mpeg
    )
    

    Was sagt phpinfo?

    php -i | grep ssl
    Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2
    openssl
    Openssl default config => /usr/lib/ssl/openssl.cnf
    openssl.cafile => no value => no value
    openssl.capath => no value => no value
    

    und:

    php -i | grep https
    Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
    Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smb, smbs, smtp, smtps, telnet, tftp
    
    1. Hm. Ich hoffe mal, Du hast lediglich 'www.shantychor-hallerschipper.de' durch 'localhost' oder '127.0.0.1' ausgetauscht: Dann stimmen nur die Schlüssel nicht.

      So, Felix. Ich habe genau das mal probiert: Dann kommt es zu folgendem Fehler:

      PHP Warning: get_headers(): Peer certificate CN=code.fastix.org' did not match expected CN=microserver.box' in /tmp/test2.php on line 3

      Da die Fehlermeldung nicht übereinstimmt und weil es mit meinem PHP [7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )] bestens funktioniert wirst Du uns wohl mal was über Deine PHP-Installation erzählen müssen.

      • PHP-Version
      • PHP-Module (kompilierte und geladene)

      Zur Not nimm internes oder externes cUrl oder den Klassiker wget. Die greifen auf eigene Libs zurück.

    2. Hm. Ich hoffe mal, Du hast lediglich 'www.shantychor-hallerschipper.de' durch 'localhost' oder '127.0.0.1' ausgetauscht: Dann stimmen nur die Schlüssel nicht.

      Nein, das läuft auf dem Web-Server.

      PHP Version 5.3.3-7+squeeze15

      php -i | grep ssl

      Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
      openssl
      

      fehlt:

      Openssl default config => /usr/lib/ssl/openssl.cnf
      openssl.cafile => no value => no value
      openssl.capath => no value => no value
      

      php -i | grep https

      Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
      

      fehlt:

      Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smb, smbs, smtp, smtps, telnet, tftp
      
      1. PHP Version 5.3.3-7+squeeze15

        Hm.

        Wer ist denn root auf DEM Server?

        1. Wer ist denn root auf DEM Server?

          Bin ich selbst, habe mich aber in das Betriebssystem nicht hineingekniet. Solche Sachen lasse ich dann von den Mitarbeitern in Ffm machen, dann kommt eine Rechnung.

          1. Solche Sachen lasse ich dann von den Mitarbeitern in Ffm machen

            Dann lass das mal zeitnah auf eine aktuelle LTS-Version hochsetzen, womöglich für apt in /etc/apt/sources gleich "rolling-releases" einrichten. Das Ding wird sonst mangels Unterstützung von moderneren und sicheren Protokollen und/oder Verfahren mit immer mehr solchen Dysfunktionen aufwarten.