Leider kann man mit der PHP FTP Erweiterung keine SSL Zertifikate von FTPS Servern zu verifizieren, um Man-in-the-Middle Angriffe zu verhindern.
Es ist aber möglich über php-cURL das selbst signierte Zertifikat zu verifizieren:
public function checkFTPSCertificate(): bool { $ftp_certificate = 'path/to/cert.crt' $ftp_server = 'ftp://foo.de/'; $ftp_user = 'user'; $ftp_password = 'password'; $ch = curl_init(); // curl_setopt($ch, CURLOPT_VERBOSE, '1'); curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERPWD, $ftp_user . ':' . $ftp_password); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, '1'); // Überprüfung des Serverzertifikats curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, '2'); curl_setopt($ch, CURLOPT_CAINFO , $ftp_certificate); curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL); curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS); $result = curl_exec($ch); $error_no = curl_errno($ch); $error_msg = curl_error($ch); curl_close ($ch); return $error_no == 0 && empty($error_msg); }