# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

#
# Apache OPENSSL configuration file
#

#
# Define what type of system this is.
#
$clientSys = "openssl";

#
# Cipher conversion table file
#
$cipherTableFile = "$certDir/cipher.list";

#--------------------------------------------
# Web server specific variables start here:
#

#
# Location of installed openssl binary
#
$opensslb = "/usr/local/bin/openssl";


#
# General location of apache server
#
$apacheHttpd="/var/httpd-ssl";

#
# HTTP Request file
#
$reqFile = "$apacheHttpd/cgi-bin/sslreq.dat";

#
# OpenSSL certificate directory
#
$certDir = "$apacheHttpd/cert";

#
# CA certificate file
#
$caCertFile = "$certDir/serverCA.crt";
