PHP SSL MiniServer

  EchoLink Proxy List

Home
Take a Tour
Download
Validation
Interfaces
Support and FAQs
Help Files
Call CQ!
News and Tips
Vanity Node Numbers
Conference Servers
Routers and Firewalls
Current Logins
Link Status

 

The following "public" EchoLink Proxy servers have reported their status within the last 10 minutes.

The owners of each of the following servers have indicated (in their proxy configuration file) that they welcome any registered EchoLink user to use their EchoLink Proxy.  These are shared resources; please be considerate and use them sparingly.

The password to access any of the following proxies is: PUBLIC.
The port number (unless otherwise stated) is: 8100.

As of: 22:20 UTC [Refresh]
Public Proxies: 937 (594 are busy)
Private Proxies (not shown below): 447

Php Ssl Miniserver | Real & Full

echo "PHP SSL MiniServer running at https://localhost:$port\n"; echo "Document root: $docRoot\n"; echo "Press Ctrl+C to stop.\n";

#!/usr/bin/env php <?php // PHP SSL MiniServer v1.0 – HTTPS file server with self-signed cert $port = $argv[1] ?? 8443; $docRoot = $argv[2] ?? getcwd(); $certFile = . '/server.pem';

// Parse request line $lines = explode("\r\n", $request); $first = explode(' ', $lines[0]); $method = $first[0]; $path = urldecode(parse_url($first[1] ?? '/', PHP_URL_PATH)); if (strpos($path, '..') !== false) $path = '/'; // basic security

if (!extension_loaded('openssl')) die("Error: OpenSSL extension required.\n"); PHP SSL MiniServer

$server = stream_socket_server("ssl://0.0.0.0:$port", $errno, $errstr, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context); if (!$server) die("Failed to start server: $errstr ($errno)\n");

if (is_dir($file)) // Directory listing $list = ""; $dir = opendir($file); while ($item = readdir($dir)) if ($item != '.' && $item != '..') $href = rtrim($path, '/') . '/' . $item; $list .= "<li><a href=\"$href\">$item</a></li>"; closedir($dir); $body = "<!DOCTYPE html><html><head><title>Index of $path</title></head><body><h1>Index of $path</h1><ul>$list</ul></body></html>"; $response = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: " . strlen($body) . "\r\nConnection: close\r\n\r\n$body"; elseif (is_file($file)) // Serve file $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime = finfo_file($finfo, $file); finfo_close($finfo); $size = filesize($file); $content = file_get_contents($file); $response = "HTTP/1.1 200 OK\r\nContent-Type: $mime\r\nContent-Length: $size\r\nConnection: close\r\n\r\n$content"; else $body = "<h1>404 Not Found</h1>"; $response = "HTTP/1.1 404 Not Found\r\nContent-Type: text/html\r\nContent-Length: " . strlen($body) . "\r\nConnection: close\r\n\r\n$body";

// Generate self-signed certificate if missing if (!file_exists($certFile)) echo "Generating self-signed certificate...\n"; $dn = [ "countryName" => "XX", "stateOrProvinceName" => "State", "localityName" => "City", "organizationName" => "Dev", "organizationalUnitName" => "Testing", "commonName" => "localhost", "emailAddress" => "admin@localhost" ]; $privkey = openssl_pkey_new(); $cert = openssl_csr_new($dn, $privkey); $cert = openssl_csr_sign($cert, null, $privkey, 365); openssl_pkey_export_to_file($privkey, $certFile); file_put_contents($certFile, openssl_x509_export($cert, true), FILE_APPEND); echo "Certificate saved to $certFile\n"; '/server

while ($conn = stream_socket_accept($server, -1)) $request = fread($conn, 4096); if (!$request) fclose($conn); continue;

// Start SSL server $context = stream_context_create([ 'ssl' => [ 'local_cert' => $certFile, 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ] ]);

1. Overview PHP SSL MiniServer is a single‑file PHP script that creates a basic HTTPS web server. It requires no external web server (Apache/Nginx) and no manual OpenSSL configuration — it generates a self‑signed certificate on the fly. $item; $list

$file = $docRoot . $path; $response = "";

fwrite($conn, $response); fclose($conn); 4.1 Start the server php ssl_miniserver.php [port] [document_root] Examples:

 

 

Copyright © 2002- EchoLink.org — EchoLink is a registered trademark of Synergenics, LLC