MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //proc/self/root/proc/self/root/scripts.20110531.215904.25158/ensure_conf_dir_crt_key
#!/usr/bin/perl
# cpanel - ensure_conf_dir_crt_key                Copyright(c) 2010 cPanel, Inc.
#                                                           All rights Reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

BEGIN { unshift @INC, '/usr/local/cpanel'; }

use strict;
use warnings;
use Cpanel::Hostname  ();
use Cpanel::SSLPath   ();
use Cpanel::Logger    ();
use Cpanel::FileUtils ();

if ( !-e '/var/cpanel/ssl' ) {
    mkdir '/var/cpanel/ssl', 0755;
}
if ( !-e '/var/cpanel/ssl/cpanel' ) {
    mkdir '/var/cpanel/ssl/cpanel', 0755;
}


system '/usr/local/cpanel/bin/checkallsslcerts' if !-e '/var/cpanel/ssl/cpanel/cpanel.pem';

my $hostname = Cpanel::Hostname::gethostname();
my $ssl_root = Cpanel::SSLPath::getsslroot();
my $nobody_gid = ( getpwnam "nobody" )[3];

my %certificates = (
    'crt' => {
        'dir'  => '/usr/local/apache/conf/ssl.crt',
        'file' => 'server.crt',
    },
    'key' => {
        'dir'  => '/usr/local/apache/conf/ssl.key',
        'file' => 'server.key',
    },
);

foreach my $type ( keys %certificates ) {
    my $dir  = $certificates{$type}{'dir'};
    my $file = $certificates{$type}{'file'};
    mkdir $dir if !-d $dir;
    my $path = $dir . '/' . $file;
    my $initialized = 0;
    
    if ( !-e $path || -z _ ) {
        Cpanel::FileUtils::safecopy( '/var/cpanel/ssl/cpanel/cpanel.pem', $path );
        $initialized = 1;
    }
    else {
        if ( open my $look_fh, '<', $path ) {
            my $cont = do { local $/; <$look_fh> };
            close $look_fh;
            if ( $cont =~ m/SKIPME/m ) {
                Cpanel::FileUtils::safecopy( '/var/cpanel/ssl/cpanel/cpanel.pem', $path );
                $initialized = 1;
            }
        }
        else {
            Cpanel::Logger::logger(
                {
                    'message'   => "Unable to read $path: $!",
                    'level'     => 'warn',
                    'service'   => 'ensure_conf_dir_crt_key',
                    'output'    => 1,
                    'backtrace' => 0,
                }
            );
        }
    }

    if ($initialized) {

        if ( $type eq 'key' ) {
            chmod 0640, $path;
            chown 0, $nobody_gid, $path;
        }
        else {

            # remove key from this .pem
            if ( open my $crt_fh, '<', $path ) {
                my $cont = do { local $/; <$crt_fh> };
                close $crt_fh;
                if ( open my $new_fh, '>', $path ) {
                    $cont =~ s{
                             -----BEGIN(\s+\w+)*\s+PRIVATE\s+KEY-----
                             .*
                             -----END(\s+\w+)*\s+PRIVATE\s+KEY-----
                         }{}xms;
                    print {$new_fh} $cont;
                    close $new_fh;
                }
            }
            chmod 0644, $path;
            
        }
    }

    if ( $type eq 'key' ) {
        if ( !-e $ssl_root . '/private/' . $hostname . '.key' || -z _ ) {
            Cpanel::FileUtils::safecopy( $path, $ssl_root . '/private/' . $hostname . '.key' );
        }
        chmod 0640, $ssl_root . '/private/' . $hostname . '.key';
        chown 0, $nobody_gid, $ssl_root . '/private/' . $hostname . '.key';
    }
    else {
        if ( !-e $ssl_root . '/certs/' . $hostname . '.crt' || -z _ ) {
            Cpanel::FileUtils::safecopy( $path, $ssl_root . '/certs/' . $hostname . '.crt' );
        }
        chmod 0644, $ssl_root . '/certs/' . $hostname . '.crt';
    }    
}