首页 > 解决方案 > cron job cer.,pem 的问题

问题描述

嗨,我在使用 php 脚本的 cron 作业时遇到问题,cron 作业给我的答案是:“文件 cer.pem 不存在”但是该文件与我正在调用的 cron.php 文件位于同一文件夹中带有下一个代码的文件:

$params = array(
        "cadenaOriginal" => "cadenaOriginal.txt",
        "archivoKeyPem" => "key.pem",
        "archivoCerPem" => "cer.pem" 
    );
    try {
        $result = Sellar::ObtenerSello($params);
        return $result;
    } catch (Exception $e) {
        echo 'Caught exception: ', $e->getMessage(), "\n";
    }

但我得到了提到的错误,这是“ObtenerSello”功能:

public static function ObtenerSello($params) {
        self::_checkOpenssl();
        if(isset($params['cadenaOriginal']) && isset($params['archivoCerPem']) && isset($params['archivoKeyPem'])){
            $cadena_original = $params['cadenaOriginal'];
            $archivoCerPem = $params['archivoCerPem'];
            $archivoKeyPem = $params['archivoKeyPem'];
        }else{
            throw new Exception('Se debe especificar una cadena original, archivo .cer.pem, archivo .key.pem');
        }
        self::_existsFile($cadena_original);
        self::_existsFile($archivoCerPem);
        self::_existsFile($archivoKeyPem);
        $cadena_original = file_get_contents($cadena_original);
        $pkeyid = openssl_get_privatekey(file_get_contents($archivoKeyPem));
        openssl_sign($cadena_original, $crypttext, $pkeyid, OPENSSL_ALGO_SHA256);
        openssl_free_key($pkeyid);
        $sello = base64_encode($crypttext);

        if(!self::_verifySeal($cadena_original, $crypttext, $archivoCerPem)){
            throw new Exception('Ocurrió un error al generar el sello.');
        }

        $r = ["status"=>"success", "sello"=>$sello];
        return json_encode($r);
    }`private static function _existsFile($file){
        if(!file_exists($file)){
            throw new Exception("El archivo $file no existe");
        }
    }`

具有此功能的所有文件都与 cron.php 位于同一文件夹中,但我一直收到相同的错误,我已经尝试放置路径“../cron/cer.pem”,但它说“文件 ../cron/ cer.pem 不存在”我做错了什么?谢谢!!

标签: phpcronjobspem

解决方案


推荐阅读