Difference between revisions of "X-Cart:Configuring HTTPS"

From X-Cart 4 Classic
Jump to: navigation, search
Line 11: Line 11:
 
<pre>
 
<pre>
 
/**
 
/**
* X-Cart HTTP & HTTPS host and web directory
+
* X-Cart HTTP & HTTPS host and web directory
*
+
*
* This section defines the location of your X-Cart installation. If X-Cart is
+
* This section defines the location of your X-Cart installation. If X-Cart is
* installed using Web installation, the variables of this section are
+
* installed using Web installation, the variables of this section are
* configured via the Installation Wizard. If you install X-Cart manually, use
+
* configured via the Installation Wizard. If you install X-Cart manually, use
* this section to provide your web server details manually.
+
* this section to provide your web server details manually.
*
+
*
* $xcart_http_host - Host name of the server on which your X-Cart software is
+
* $xcart_http_host - Host name of the server on which your X-Cart software is
* to be installed;
+
* to be installed;
* $xcart_https_host - Host name of the secure server that will provide access
+
* $xcart_https_host - Host name of the secure server that will provide access
* to your X-Cart-based store via the HTTPS protocol;
+
* to your X-Cart-based store via the HTTPS protocol;
* $xcart_web_dir - X-Cart web directory.
+
* $xcart_web_dir - X-Cart web directory.
*
+
*
* NOTE:
+
* NOTE:
* The variables $xcart_http_host and $xcart_https_host must contain hostnames
+
* The variables $xcart_http_host and $xcart_https_host must contain hostnames
* ONLY (no http:// or https:// prefixes, no trailing slashes).
+
* ONLY (no http:// or https:// prefixes, no trailing slashes).
*
+
*
* Web dir is the directory where your X-Cart is installed as seen from the Web,
+
* Web dir is the directory where your X-Cart is installed as seen from the Web,
* not the file system.
+
* not the file system.
*
+
*
* Web dir must start with a slash and have no slash at the end. An exception to
+
* Web dir must start with a slash and have no slash at the end. An exception to
* this rule is when you install X-Cart in the site root, in which case you need
+
* this rule is when you install X-Cart in the site root, in which case you need
* to leave the variable empty.
+
* to leave the variable empty.
*
+
*
* EXAMPLE 1:
+
* EXAMPLE 1:
* $xcart_http_host ="www.yourhost.com";
+
* $xcart_http_host ="www.yourhost.com";
* $xcart_https_host ="www.securedirectories.com/yourhost.com";
+
* $xcart_https_host ="www.securedirectories.com/yourhost.com";
* $xcart_web_dir ="/xcart";
+
* $xcart_web_dir ="/xcart";
* will result in the following URLs:
+
* will result in the following URLs:
* http://www.yourhost.com/xcart
+
* http://www.yourhost.com/xcart
* https://www.securedirectories.com/yourhost.com/xcart
+
* https://www.securedirectories.com/yourhost.com/xcart
*
+
*
* EXAMPLE 2:
+
* EXAMPLE 2:
* $xcart_http_host ="www.yourhost.com";
+
* $xcart_http_host ="www.yourhost.com";
* $xcart_https_host ="www.yourhost.com";
+
* $xcart_https_host ="www.yourhost.com";
* $xcart_web_dir ="";
+
* $xcart_web_dir ="";
* will result in the following URLs:
+
* will result in the following URLs:
* http://www.yourhost.com/
+
* http://www.yourhost.com/
* https://www.yourhost.com/
+
* https://www.yourhost.com/
*/
+
*/
 
</pre>
 
</pre>
  
Line 60: Line 60:
 
* "Use secure login form on a separate page (HTTPS)" ("General settings").
 
* "Use secure login form on a separate page (HTTPS)" ("General settings").
  
'''Optionally''', if you need secure certain php scripts you should add https scripts to <xcart_dir>/https.php file, 'https_scripts' array.
+
'''Optionally''', if you need secure certain php scripts you should add https scripts to <xcart_dir>/https.php file, 'https_scripts' array. You can find some examples in <xcart_dir>/https.php file:
 +
 
 +
<pre>
 +
    $https_scripts[] = 'login.php';
 +
    $https_scripts[] = array(
 +
        'cart.php',
 +
        "mode=checkout",
 +
    );
 +
</pre>
  
 
'''Optionally''', if you want to switch the whole x-cart to secure mode edit https.php file. Find the line
 
'''Optionally''', if you want to switch the whole x-cart to secure mode edit https.php file. Find the line

Revision as of 14:28, 22 December 2010

Firstly, you should obtain a SSL certificate and have it installed and configured on your web-server.

Basically most hosting companies offer help with purchasing SSL certificates or provide their own Shared SSL URLs. If your hosting company doesn't offer you such services you will have to choose a certificate yourself.

We will be glad to help you with this matter. You can purchase SSL certificates from our company. We sell SSL certificates provided by the world leading Certification Authority Comodo Group http://www.comodogroup.com. For details, conditions and prices please see http://www.x-cart.com/ssl_certificates.html.

If you are on dedicate server we are able to offer you our service to analyze and configure your server and/or install the SSL Certificate. Please note we need have 'root' SSH access or 'Administrator' MS Remote Access Desktop to perform the tasks.

Secondly, once you have the SSL certificate installed and configured, you should configure HTTPS server in X-Cart. To do it, you need modify <xcart_dir>/config.php file, and set the $xcart_https_host variable properly:

/**
* X-Cart HTTP & HTTPS host and web directory
*
* This section defines the location of your X-Cart installation. If X-Cart is
* installed using Web installation, the variables of this section are
* configured via the Installation Wizard. If you install X-Cart manually, use
* this section to provide your web server details manually.
*
* $xcart_http_host - Host name of the server on which your X-Cart software is
* to be installed;
* $xcart_https_host - Host name of the secure server that will provide access
* to your X-Cart-based store via the HTTPS protocol;
* $xcart_web_dir - X-Cart web directory.
*
* NOTE:
* The variables $xcart_http_host and $xcart_https_host must contain hostnames
* ONLY (no http:// or https:// prefixes, no trailing slashes).
*
* Web dir is the directory where your X-Cart is installed as seen from the Web,
* not the file system.
*
* Web dir must start with a slash and have no slash at the end. An exception to
* this rule is when you install X-Cart in the site root, in which case you need
* to leave the variable empty.
*
* EXAMPLE 1:
* $xcart_http_host ="www.yourhost.com";
* $xcart_https_host ="www.securedirectories.com/yourhost.com";
* $xcart_web_dir ="/xcart";
* will result in the following URLs:
* http://www.yourhost.com/xcart
* https://www.securedirectories.com/yourhost.com/xcart
*
* EXAMPLE 2:
* $xcart_http_host ="www.yourhost.com";
* $xcart_https_host ="www.yourhost.com";
* $xcart_web_dir ="";
* will result in the following URLs:
* http://www.yourhost.com/
* https://www.yourhost.com/
*/

Thirdly, if you are going to use secure server you should copy the whole X-Cart directory into HTTPS location (or secure server if it is different from HTTP server), then delete all files and directories from directory <xcart_dir>/var/templates_c on HTTPS location. In case both HTTP and HTTPS locations are located on the same Unix server you should just create symbolic link from HTTPS location to HTTP location of X-Cart. Contact your hosting administrators with this issue.

Finally, you can turn on the following options:

  • to set up secure checkout, go to admin area, "Payment methods" page and select HTTPS as protocol for payment methods which you are going to use.
  • "Use HTTPS for users' login and registration" ("General settings").
  • "Use secure login form on a separate page (HTTPS)" ("General settings").

Optionally, if you need secure certain php scripts you should add https scripts to <xcart_dir>/https.php file, 'https_scripts' array. You can find some examples in <xcart_dir>/https.php file:

    $https_scripts[] = 'login.php';
    $https_scripts[] = array(
        'cart.php',
        "mode=checkout",
    );

Optionally, if you want to switch the whole x-cart to secure mode edit https.php file. Find the line

function is_https_link($link, $https_scripts) {

and replace it with

function is_https_link($link, $https_scripts) {
return true;