【问题标题】:Cpanel XML API installssl errorCpanel XML API installssl 错误
【发布时间】:2014-04-29 21:14:40
【问题描述】:
<error>[an error occurred while processing this directive]</error>[2014-04-29 15:56:53 -0500] warn [xml-api] The system could not parse the certificate because o
f an error: A critical error occurred while parsing the ASN.1 data: Cpanel::CPAN::Encoding::BER: corrupt data? data appears truncated
at /usr/local/cpanel/Cpanel/SSL/Utils.pm line 724
at /usr/local/cpanel/Cpanel/SSLInfo.pm line 72

这是我的电话:

my $status = make_request($auth, "installssl?user=$user&domain=$domain&cert=@cert&key=@key&ip=$dedicated_ip");

sub make_request {
  my $auth = shift;
  my $params = shift;
  my $url = "https://127.0.0.1:2087/xml-api/" . $params;
  my $ua = LWP::UserAgent->new();
  my $request = HTTP::Request->new( POST => $url );
  $request->header( Authorization => $auth );
  my $response = $ua->request($request);
  my $data = $response->content;
  my $xml = XML::Simple->new;
  $data = $xml->XMLin($data);
  if ( $data->{'status'} ) {
    return $data;
  } else {
    print "[!] Cpanel API returned an error: " . $data->{'statusmsg'} . "\n";
    exit;
  }
}

Statusmsg:[!] Cpanel API 返回错误:证书似乎无效。

【问题讨论】:

  • SSL 是自签名的。此外,它还可以通过 WHM 使用 SSL 和私钥进行安装。

标签: cpanel


【解决方案1】:

此问题是由已弃用 InstallSSL 的 XML-API 支持引起的。我通过 XML-API 使用 API2 解决了这个问题:

sub make_api2_request {
    my $auth     = shift;
    my $user     = shift;
    my $domain   = shift;
    my $cert     = shift;
    my $key      = shift;
    my $bundle   = shift;
    my $url      = "https://127.0.0.1:2087/xml-api/cpanel";
    my $ua       = LWP::UserAgent->new();
    my $response = $ua->request(
        POST $url,
        Authorization => $auth,
        Content_Type  => 'application/x-www-form-urlencoded',
        Content       => [
            'crt'                      => $cert,
            'domain'                   => $domain,
            'key'                      => $key,
            'cpanel_xmlapi_user'       => $user,
            'cpanel_xmlapi_module'     => 'SSL',
            'cpanel_xmlapi_func'       => 'installssl',
            'cpanel_xmlapi_apiversion' => 2,
        ],
    );
    my $data = $response->content;
    $data = XMLin($data);
    if ( $data->{'error'} ) {
        $data->{'error'} =~ s/[^[:ascii:]]+//g;
        print "[!] " . $data->{'error'} . "\n";
        return 0;
    }
    else {
        return 1;
    }
}

【讨论】:

    【解决方案2】:

    听起来您缺少一些 PERL 依赖项。运行此列表开始,完成后,进入 WHM 的 SSL 存储管理器,删除所有未使用的自签名证书,重新生成(或从 CLI 运行 /usr/local/cpanel/scripts/gencrt)然后查看是否在证书生成过程中引发了任何错误。祝你好运!

    /scripts/perlinstaller Config::Crontab
    /scripts/perlinstaller Date::Simple
    /scripts/perlinstaller Digest::MD5
    /scripts/perlinstaller HTTP::Request::Common
    /scripts/perlinstaller IO::Handle
    /scripts/perlinstaller IPC::Open3
    /scripts/perlinstaller JSON::Syck
    /scripts/perlinstaller LWP::UserAgent
    /scripts/perlinstaller Mozilla::CA
    /scripts/perlinstaller Template
    /scripts/perlinstaller XML::Simple
    /scripts/perlinstaller YAML::Syck
    

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多