• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

PHP PayPal with Cloudflare

Eldora

Banned User
Joined
Oct 19, 2009
Messages
604
Reaction score
26
How can I fix that I do not get points when buying points through the shop?

My Cloudflare settings:
  • Flexible
  • Proxied

All my ipn settings and settings in config.php are 100% correct.

PayPal
setting are also correct, ran a few tests.

I get "success" on PayPal with code "HTTP - 200", but no entries in database under "znote_paypal".
 
You get a 200 Success response on the initial response. It then sends the response data back to PayPal to verify it. You need to make sure that you send the data in the same order, and also double check that the encoding matches the encoding you've set in the paypal settings. Make sure it add UTF8 or whatever encoding you use into the HTML form.
 
Are your cloudflare configs blocking automatic traffic (bots)? it probably recognizes the paypal api as a bot and blocks it when delivery the points
 
Are your cloudflare configs blocking automatic traffic (bots)? it probably recognizes the paypal api as a bot and blocks it when delivery the points
How can I verify this and prevent the blocking?
Post automatically merged:

You get a 200 Success response on the initial response. It then sends the response data back to PayPal to verify it. You need to make sure that you send the data in the same order, and also double check that the encoding matches the encoding you've set in the paypal settings. Make sure it add UTF8 or whatever encoding you use into the HTML form.
It is using UTF8 and the PayPal settings are correct, as I mentioned :) but thanks
 
@Gesior.pl fixed this for my friend and he shared the code:
IPN.php:
PHP:
<?php
$log = microtime(true) . '.log';

function gesiorLog($file, $text, $data = [])
{
//    file_put_contents($file, $text . PHP_EOL . var_export($data, true) . PHP_EOL, FILE_APPEND);
}

gesiorLog($log, 'start',
    [
    'POST' => $_POST,
    'GET' => $_GET,
    'SERVER' => $_SERVER,
    ]
);

// Require the functions to connect to database and fetch config values
require 'config.php';
require 'engine/database/connect.php';

function VerifyPaypalIPN(array $IPN = null){
    global $log;
    if(empty($IPN)){
        $IPN = $_POST;
    }
    if(empty($IPN['verify_sign'])){
        return null;
    }
    $IPN['cmd'] = '_notify-validate';
    $PaypalHost = (empty($IPN['test_ipn']) ? 'www' : 'www.sandbox').'.paypal.com';
    $cURL = curl_init();
    curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cURL, CURLOPT_URL, "https://{$PaypalHost}/cgi-bin/webscr");
    curl_setopt($cURL, CURLOPT_ENCODING, 'gzip');
    curl_setopt($cURL, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($cURL, CURLOPT_POST, true); // POST back
    curl_setopt($cURL, CURLOPT_POSTFIELDS, $IPN); // the $IPN
    curl_setopt($cURL, CURLOPT_HEADER, false);
    curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($cURL, CURLOPT_FORBID_REUSE, true);
    curl_setopt($cURL, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($cURL, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($cURL, CURLOPT_TIMEOUT, 60);
    curl_setopt($cURL, CURLINFO_HEADER_OUT, true);
    curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
        'Connection: close',
        'Expect: ',
    ));
    $Response = curl_exec($cURL);
    $Status = (int)curl_getinfo($cURL, CURLINFO_HTTP_CODE);
    curl_close($cURL);

    gesiorLog($log, 'VerifyPaypalIPN',
        [
        'Response' => $Response,
        'Status' => $Status,
        'URL' => "https://{$PaypalHost}/cgi-bin/webscr",
        ]
    );

    if(empty($Response) or !preg_match('~^(VERIFIED|INVALID)$~i', $Response = trim($Response)) or !$Status){
        return null;
    }
    if(intval($Status / 100) != 2){
        return false;
    }
    return !strcasecmp($Response, 'VERIFIED');
}

// Fetch paypal configurations
$paypal = $config['paypal'];
$prices = $config['paypal_prices'];

gesiorLog($log, 'config',
    [
    'paypal' => $paypal,
    'prices' => $prices,
    ]
);

// Send an empty HTTP 200 OK response to acknowledge receipt of the notification
header('HTTP/1.1 200 OK');

// Build the required acknowledgement message out of the notification just received
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req  .= "&$key=$value";
}
$postdata = $req;

// Assign payment notification values to local variables
$item_name        = $_POST['item_name'];
$item_number      = $_POST['item_number'];
$payment_status   = $_POST['payment_status'];
$payment_amount   = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id           = $_POST['txn_id'];
$receiver_email   = $_POST['receiver_email'];
$payer_email      = $_POST['payer_email'];
$custom           = (int)$_POST['custom'];

$connectedIp = $_SERVER['REMOTE_ADDR'];
mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'Connection from IP: $connectedIp', '0', '0', '0')");

$status = VerifyPaypalIPN();
if ($status) {
    // Check that the payment_status is Completed
    if ($payment_status == 'Completed') {

        
        // Check that txn_id has not been previously processed
        $txn_id_check = mysql_select_single("SELECT `txn_id` FROM `znote_paypal` WHERE `txn_id`='$txn_id'");
        if ($txn_id_check !== false) {
            // Check that receiver_email is your Primary PayPal email
            if ($receiver_email == $paypal['email']) {
                
                $status = true;
                $paidMoney = 0;
                $paidPoints = 0;

                foreach ($prices as $priceValue => $pointsValue) {
                    if ($priceValue == $payment_amount) {
                        $paidMoney = $priceValue;
                        $paidPoints = $pointsValue;
                    }
                }

                if ($paidMoney == 0) $status = false; // Wrong ammount of money
                if ($payment_currency != $paypal['currency']) $status = false; // Wrong currency
                
                // Verify that the user havent messed around with POST data
                if ($status) {
                    // transaction log
                    mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', '$payer_email', '$custom', '".$paidMoney."', '".$paidPoints."')");
                    
                    // Process payment
                    $data = mysql_select_single("SELECT `points` AS `old_points` FROM `znote_accounts` WHERE `account_id`='$custom';");

                    // Give points to user
                    $new_points = $data['old_points'] + $paidPoints;
                    mysql_update("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$custom'");
                }
            }  else {
                $pmail = $paypal['email'];
                mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'ERROR: Wrong mail. Received: $receiver_email, configured: $pmail', '0', '0', '0')");
            }
        }
    }
} else {
    // Something is wrong
    mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'ERROR: Invalid data. $postdata', '0', '0', '0')");
}
 
@Gesior.pl fixed this for my friend and he shared the code:
IPN.php:
PHP:
<?php
$log = microtime(true) . '.log';

function gesiorLog($file, $text, $data = [])
{
//    file_put_contents($file, $text . PHP_EOL . var_export($data, true) . PHP_EOL, FILE_APPEND);
}

gesiorLog($log, 'start',
    [
    'POST' => $_POST,
    'GET' => $_GET,
    'SERVER' => $_SERVER,
    ]
);

// Require the functions to connect to database and fetch config values
require 'config.php';
require 'engine/database/connect.php';

function VerifyPaypalIPN(array $IPN = null){
    global $log;
    if(empty($IPN)){
        $IPN = $_POST;
    }
    if(empty($IPN['verify_sign'])){
        return null;
    }
    $IPN['cmd'] = '_notify-validate';
    $PaypalHost = (empty($IPN['test_ipn']) ? 'www' : 'www.sandbox').'.paypal.com';
    $cURL = curl_init();
    curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cURL, CURLOPT_URL, "https://{$PaypalHost}/cgi-bin/webscr");
    curl_setopt($cURL, CURLOPT_ENCODING, 'gzip');
    curl_setopt($cURL, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($cURL, CURLOPT_POST, true); // POST back
    curl_setopt($cURL, CURLOPT_POSTFIELDS, $IPN); // the $IPN
    curl_setopt($cURL, CURLOPT_HEADER, false);
    curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($cURL, CURLOPT_FORBID_REUSE, true);
    curl_setopt($cURL, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($cURL, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($cURL, CURLOPT_TIMEOUT, 60);
    curl_setopt($cURL, CURLINFO_HEADER_OUT, true);
    curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
        'Connection: close',
        'Expect: ',
    ));
    $Response = curl_exec($cURL);
    $Status = (int)curl_getinfo($cURL, CURLINFO_HTTP_CODE);
    curl_close($cURL);

    gesiorLog($log, 'VerifyPaypalIPN',
        [
        'Response' => $Response,
        'Status' => $Status,
        'URL' => "https://{$PaypalHost}/cgi-bin/webscr",
        ]
    );

    if(empty($Response) or !preg_match('~^(VERIFIED|INVALID)$~i', $Response = trim($Response)) or !$Status){
        return null;
    }
    if(intval($Status / 100) != 2){
        return false;
    }
    return !strcasecmp($Response, 'VERIFIED');
}

// Fetch paypal configurations
$paypal = $config['paypal'];
$prices = $config['paypal_prices'];

gesiorLog($log, 'config',
    [
    'paypal' => $paypal,
    'prices' => $prices,
    ]
);

// Send an empty HTTP 200 OK response to acknowledge receipt of the notification
header('HTTP/1.1 200 OK');

// Build the required acknowledgement message out of the notification just received
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req  .= "&$key=$value";
}
$postdata = $req;

// Assign payment notification values to local variables
$item_name        = $_POST['item_name'];
$item_number      = $_POST['item_number'];
$payment_status   = $_POST['payment_status'];
$payment_amount   = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id           = $_POST['txn_id'];
$receiver_email   = $_POST['receiver_email'];
$payer_email      = $_POST['payer_email'];
$custom           = (int)$_POST['custom'];

$connectedIp = $_SERVER['REMOTE_ADDR'];
mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'Connection from IP: $connectedIp', '0', '0', '0')");

$status = VerifyPaypalIPN();
if ($status) {
    // Check that the payment_status is Completed
    if ($payment_status == 'Completed') {

       
        // Check that txn_id has not been previously processed
        $txn_id_check = mysql_select_single("SELECT `txn_id` FROM `znote_paypal` WHERE `txn_id`='$txn_id'");
        if ($txn_id_check !== false) {
            // Check that receiver_email is your Primary PayPal email
            if ($receiver_email == $paypal['email']) {
               
                $status = true;
                $paidMoney = 0;
                $paidPoints = 0;

                foreach ($prices as $priceValue => $pointsValue) {
                    if ($priceValue == $payment_amount) {
                        $paidMoney = $priceValue;
                        $paidPoints = $pointsValue;
                    }
                }

                if ($paidMoney == 0) $status = false; // Wrong ammount of money
                if ($payment_currency != $paypal['currency']) $status = false; // Wrong currency
               
                // Verify that the user havent messed around with POST data
                if ($status) {
                    // transaction log
                    mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', '$payer_email', '$custom', '".$paidMoney."', '".$paidPoints."')");
                   
                    // Process payment
                    $data = mysql_select_single("SELECT `points` AS `old_points` FROM `znote_accounts` WHERE `account_id`='$custom';");

                    // Give points to user
                    $new_points = $data['old_points'] + $paidPoints;
                    mysql_update("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$custom'");
                }
            }  else {
                $pmail = $paypal['email'];
                mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'ERROR: Wrong mail. Received: $receiver_email, configured: $pmail', '0', '0', '0')");
            }
        }
    }
} else {
    // Something is wrong
    mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'ERROR: Invalid data. $postdata', '0', '0', '0')");
}
I'm using ZnoteAAC, not gesior, but thanks anyways :)
 
But this is znote acc...
Just because someone else helped?
Man get a grip...
I just give credit where it's due
I think he might have thought that your post was about Gesior AAC since you didn't provide any information related to the problem you just mentioned the fix for Gesior. Why are you upset tho? lol
 
How can I fix that I do not get points when buying points through the shop?

My Cloudflare settings:
  • Flexible
  • Proxied

All my ipn settings and settings in config.php are 100% correct.

PayPal
setting are also correct, ran a few tests.

I get "success" on PayPal with code "HTTP - 200", but no entries in database under "znote_paypal".
Does it work with 'proxied' disable? There can be 2 problems:
1. Cloudflare added SSL (HTTPS) to your website and you got in config (PHP)of PayPal URL to IPN http://. PayPal reports to HTTP, CloudFlare redirects to HTTPS and data from PayPal is not delivered (paypal report cannot be redirected) - change it to https://.
2. Cloudflare blocks IPs of Paypal. You got to add PayPal IPs to your whitelist in Cloudflare. Paypal IPs:
Code:
'64.4.240.0/21',
'64.4.248.0/22',
'66.211.168.0/22',
'91.243.72.0/23',
'173.0.80.0/20',
If Cloudflare does not allow whitelisting IP ranges with /21, /22 (only /8, /16, /24), use lower number. Ex. /21 -> /16, /22 -> /16
 
I think he might have thought that your post was about Gesior AAC since you didn't provide any information related to the problem you just mentioned the fix for Gesior. Why are you upset tho? lol

Correct and didn't mean to upset anybody.

I have tried to replace my ipn.php with yours and it gave the same result.
Basically it goes through as "sent" and with HTTP code 200.
But the points does not get added to the account, and no records in the znote_paypal table either.

Any ideas? Could it be Cloudflare messing it up?
If I set Cloudflare SSL ecnryption mode to from "Flexible" to "Full", then I get that the "SSL handshake failed (525)".
Maybe PayPal require a SSL connection all the way to the Origin Server? Or no?

This is how it looks in Cloudflare SSL configuration:

1676892862497.png
Post automatically merged:

Does it work with 'proxied' disable? There can be 2 problems:
1. Cloudflare added SSL (HTTPS) to your website and you got in config (PHP)of PayPal URL to IPN http://. PayPal reports to HTTP, CloudFlare redirects to HTTPS and data from PayPal is not delivered (paypal report cannot be redirected) - change it to https://.
2. Cloudflare blocks IPs of Paypal. You got to add PayPal IPs to your whitelist in Cloudflare. Paypal IPs:
Code:
'64.4.240.0/21',
'64.4.248.0/22',
'66.211.168.0/22',
'91.243.72.0/23',
'173.0.80.0/20',
If Cloudflare does not allow whitelisting IP ranges with /21, /22 (only /8, /16, /24), use lower number. Ex. /21 -> /16, /22 -> /16

1. I already have "https://" prefix for the paypal IPN setting.

2. I would like to try whitelisting the Paypal IPs, where can I do that in Cloudflare?
Looking around ... Hopefully this will work.

By the way, will "Flexible" be enough, or do I need "Full" for it to work with Paypal?
 
Your default mysql "email" column length will be too short to store all the post values., and therefore doesn't write anything, but you may be getting a response.

Lets see if we actually get a response:

Either:
Increase your "Email" column to allow a longer varchar length

OR

Change line 153 to:
PHP:
mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'ERROR: Validation response received, but error occured.', '0', '0', '0')");

If you then receive "ERROR: Validation response received, but error occured", you know it has nothing to do with cloudflare, and it's another issue.
 
By the way, will "Flexible" be enough, or do I need "Full" for it to work with Paypal?
Should be fine. PayPal will connect to Cloudflare server using HTTPS and then it will be passed to your server using HTTP. For 'flexible' you must use https:// in IPN config.
Can you post URL to your site? It would be easier to find problem.
 
Your default mysql "email" column length will be too short to store all the post values., and therefore doesn't write anything, but you may be getting a response.

Lets see if we actually get a response:

Either:
Increase your "Email" column to allow a longer varchar length

OR

Change line 153 to:
PHP:
mysql_insert("INSERT INTO `znote_paypal` VALUES ('', '$txn_id', 'ERROR: Validation response received, but error occured.', '0', '0', '0')");

If you then receive "ERROR: Validation response received, but error occured", you know it has nothing to do with cloudflare, and it's another issue.

It did not return the error message, so I believe it has to do with Cloudflare then, right?
The IPN still go through as "sent" according to Paypal history.
 
Yeah. It's best to make sure other factors aren't causing it before blaming cloudflare :p

Can you post the HTML form used for the button. Or you can just paste the whole PHP file
 
Should be fine. PayPal will connect to Cloudflare server using HTTPS and then it will be passed to your server using HTTP. For 'flexible' you must use https:// in IPN config.
Can you post URL to your site? It would be easier to find problem.

How about I add you on discord?
Or you add me: pickapenguin#5074
Post automatically merged:

Yeah. It's best to make sure other factors aren't causing it before blaming cloudflare :p

Can you post the HTML form used for the button. Or you can just paste the whole PHP file

What PHP file do you need?
buypoints.php or ipn.php?
Post automatically merged:

Should be fine. PayPal will connect to Cloudflare server using HTTPS and then it will be passed to your server using HTTP. For 'flexible' you must use https:// in IPN config.
Can you post URL to your site? It would be easier to find problem.O

I added this to Cloudflare, correct?

1676895830184.png

It did not make any difference unfortunately :(
 
Last edited:
buypoints.php
PHP:
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';

// Import from config:
$pagseguro = $config['pagseguro'];
$paypal = $config['paypal'];
$prices = $config['paypal_prices'];

if ($paypal['enabled']) {
?>

<table id="buypointsTable" class="table table-striped table-hover">
    <tr class="yellow">
        <th>Price:</th>
        <th>Points</th>
        <?php if ($paypal['showBonus']) { ?>
            <th>Bonus:</th>
        <?php } ?>
        <th>Action:</th>
    </tr>
        <?php
        foreach ($prices as $price => $points) {
        echo '<tr class="special">';
        echo '<td>'. $price .'('. $paypal['currency'] .')</td>';
        echo '<td>'. $points .'</td>';
        if ($paypal['showBonus']) echo '<td>'. calculate_discount(($paypal['points_per_currency'] * $price), $points) .' bonus</td>';
        ?>
        <td>
            <form action="https://www.paypal.com/cgi-bin/webscr" method="POST">
                <input type="hidden" name="cmd" value="_xclick">
                <input type="hidden" name="business" value="<?php echo hhb_tohtml($paypal['email']); ?>">
                <input type="hidden" name="item_name" value="<?php echo $points .' Points on '. hhb_tohtml($config['site_title']); ?>">
                <input type="hidden" name="item_number" value="1">
                <input type="hidden" name="amount" value="<?php echo $price; ?>">
                <input type="hidden" name="no_shipping" value="1">
                <input type="hidden" name="no_note" value="1">
                <input type="hidden" name="currency_code" value="<?php echo hhb_tohtml($paypal['currency']); ?>">
                <input type="hidden" name="lc" value="GB">
                <input type="hidden" name="bn" value="PP-BuyNowBF">
                <input type="hidden" name="return" value="<?php echo hhb_tohtml($paypal['success']); ?>">
                <input type="hidden" name="cancel_return" value="<?php echo hhb_tohtml($paypal['failed']); ?>">
                <input type="hidden" name="rm" value="2">
                <input type="hidden" name="notify_url" value="<?php echo hhb_tohtml($paypal['ipn']); ?>" />
                <input type="hidden" name="custom" value="<?php echo (int)$session_user_id; ?>">
                <input type="submit" value="  PURCHASE  ">
            </form><img src="layout/img/coinsonly2.gif">
        </td>
        <?php
        echo '</tr>';
        }
        ?>
</table>
<?php } ?>

<?php
if ($config['pagseguro']['enabled'] == true) {
?>
    <h2>Buy points using Pagseguro:</h2>
    <form target="pagseguro" action="https://<?=hhb_tohtml($pagseguro['urls']['www'])?>/checkout/checkout.jhtml" method="post">
        <input type="hidden" name="email_cobranca" value="<?=hhb_tohtml($pagseguro['email'])?>">
        <input type="hidden" name="tipo" value="CP">
        <input type="hidden" name="moeda" value="<?=hhb_tohtml($pagseguro['currency'])?>">
        <input type="hidden" name="ref_transacao" value="<?php echo (int)$session_user_id; ?>">
        <input type="hidden" name="item_id_1" value="1">
        <input type="hidden" name="item_descr_1" value="<?=hhb_tohtml($pagseguro['product_name'])?>">
        <input type="number" name="item_quant_1" min="1" step="4" value="1">
        <input type="hidden" name="item_peso_1" value="0">
        <input type="hidden" name="item_valor_1" value="<?=$pagseguro['price']?>">
        <input type="submit" value="  PURCHASE  ">
    </form>
    <br>
<?php } ?>

<?php
if ($config['paygol']['enabled'] == true) {
?>
<!-- PayGol Form using Post method -->
<h2>Buy points using Paygol:</h2>
<?php $paygol = $config['paygol']; ?>
<p><?php echo $paygol['price'] ." ". hhb_tohtml($paygol['currency']) ."~ for ". $paygol['points'] ." points:"; ?></p>
<form name="pg_frm" method="post" action="http://www.paygol.com/micropayment/paynow" >
    <input type="hidden" name="pg_serviceid" value="<?php echo hhb_tohtml($paygol['serviceID']); ?>">
    <input type="hidden" name="pg_currency" value="<?php echo hhb_tohtml($paygol['currency']); ?>">
    <input type="hidden" name="pg_name" value="<?php echo hhb_tohtml($paygol['name']); ?>">
    <input type="hidden" name="pg_custom" value="<?php echo hhb_tohtml($session_user_id); ?>">
    <input type="hidden" name="pg_price" value="<?php echo $paygol['price']; ?>">
    <input type="hidden" name="pg_return_url" value="<?php echo hhb_tohtml($paygol['returnURL']); ?>">
    <input type="hidden" name="pg_cancel_url" value="<?php echo hhb_tohtml($paygol['cancelURL']); ?>">
    <input type="image" name="pg_button" src="https://www.paygol.com/micropayment/img/buttons/150/black_en_pbm.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!">
</form>
<?php }

if (!$config['paypal']['enabled'] && !$config['paygol']['enabled'] && !$config['pagseguro']['enabled']) echo '<h1>Buy Poinrts system disabled.</h1><p>Sorry, this functionality is disabled.</p>';
include 'layout/overall/footer.php'; ?>
 
Add:
HTML:
<input type="hidden" name="charset" value="utf-8">
along with the other hidden inputs

This did not work, it seems like utf-8 is default anyway?
Post automatically merged:

Idk worked for me and I use cloudflare
But I use full with own certificate

If I switch to "Full", then it will give me "SSL Handshake failed" (525).
Are these settings correct in httpd-ssl.conf?
Code:
#   General setup for the virtual host
DocumentRoot "${SRVROOT}/www/"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

Code:
SSLEngine on

Code:
SSLCertificateFile "${SRVROOT}/conf/key/certificate.crt"

Code:
SSLCertificateKeyFile "${SRVROOT}/conf/key/private.key"


Am I missing something?
 
Back
Top