To build the Apache filter you need Apache 1.3.X.  Support for Apache 2.x is available.
		Your web server should have SSL enabled.
	    
	    
		You will need OpenSSL 0.9.7a or newer.
	    
	    
		You will need a source of entropy for the OpenSSL
		libraries to work.  If your system has /dev/*random
		then you're all set, otherwise you should get
		something like prngd or egd.  Solaris users should
		refer to document 27606 "Differing /dev/random
		support requirements within Solaris [TM] Operating
		Environments" at http://sunsolve.sun.com/.
		Users of operating systems lacking a built-in
		source of entropy ( such as AIX ) will want to get
		prngd.
	    
	    
		If your cosign protected service needs Kerberos
		credentials, you will need MIT krb5-1.2.7 or
		later.  Kerberos libraries are not required if you
		do not need access to kerberos credentials.  If you
		are building a central weblogin server, see
		README.weblogin in the source distribution.
	    
	    
		To build the Apache authentication filter:
	    
	    
		NOTE: On Redhat 9, kerberos is in a  non-standard
		place, and so, by default, configure may not find it.
		So if you need to use kerberos ticket transfers, you
		will need to do the following.
	    
	    
		Add "env CPPFLAGS=-I/usr/kerberos/include" before you
		run configure. So in csh your configure line will look
		like this:
	    
env CPPFLAGS=-I/usr/kerberos/include ./configure
	    
		and in bash or sh you'd type:
	    
CPPFLAGS=-I/usr/kerberos/include ./configure
	    
		To build:
	    
./configure
make
make install
mkdir -p /var/cosign/filter
chown APACHE_USER /var/cosign/filter
	    
		'make install' will install the filter using your
		copy of apxs.  Be sure to change APACHE_USER to the
		username defined in your httpd.conf file.
	    
	    
		Finally, create a CA directory to hold your CA
		certificates.  Copy the CAs ( see the CAcerts
		directory in the root of the cosign source
		distribution ) to your CA dir and issue the
		c_rehash command ( c_rehash is a perl script that
		ships with openssl ).  If you choose to store your
		certs in '/usr/local/etc/apache/certs' then the
		commands would be:
	    
    mkdir -p /usr/local/etc/apache/certs
    cp CAcerts/* /usr/local/etc/apache/certs
    c_rehash /usr/local/etc/apache/certs
	    
		output should look like:
	    
    Doing /usr/local/etc/apache/certs
    umwebCA.pem => 4700e8dd.0
    RSA-SSCA.pem => f73e89fd.0
    entrust.pem => ed524cf5.0
	    
		Configure Apache ( U of M specific example ):
	    
	    
		In the U of M environment, you'll want your
		directives to look like this:
	    
	    
		On your http ( port 80 ) side, and any dirs or
		locations you want exempt:
	    
    CosignProtected		Off
	    
		in :443 ( or otherwise https ) vhost
	    
    CosignProtected		On
    CosignHostname		weblogin.umich.edu
    CosignRedirect		https://weblogin.umich.edu/
    CosignPostErrorRedirect https://weblogin.umich.edu/post_error.html
    CosignService		[use what remains after dropping .umich.edu from the ServerName]
    CosignCrypto		/path/to/key /path/to/cert /path/to/CAdir
	    
		NOTE: trailing slash is required on CosignRedirect!
		The redirects won't work correctly without it.
	    
	    
		Stop and Start Apache
	    
	    
		See README.scripts in the source distribution for a
		cron job that prunes old cookies from the filter's
		database and scripts for local logout.
	    
	    
		Apache Configuration Options:
	    
CosignProtected         [ on | off ]
            governs whether Cosign is invoked or not
        CosignHostname          [ the name of the host running cosignd ]
        CosignRedirect          [ the URL of the cosign login cgi ]
        CosignPostErrorRedirect [ the URL to redirect to if the user
                                would be redirected to the login cgi
                                during a POST. This screen lets people
                                know we dropped their data. ]
        CosignService           [ the name of the cosign service cookie ]
        CosignSiteEntry         [ the URL to redirect to after login  ]
        CosignCrypto            [path to key] [path to cert] [path to CA dir]
        CosignRequireFactor     [ a list of the factors a user must satisfy ]
        CosignFactorSuffix      [ optional factor suffix when testing
                                for compliance ]
        CosignFactorSuffixIgnore         [ on | off ]
        CosignHttpOnly          [ on | off ]
                module can be use without SSL - not recommended!
        CosignTicketPrefix      [ the path to the Kerberos ticket store ]
        CosignFilterDB          [ the path to the cosign filter DB]
        CosignFilterHashLength  [ 0 | 1 | 2 ]
            subdir hash for cosign filter DB
	CosignCheckIP		[ never | initial | always ]
	    check browser's IP against cosignd's ip information
        CosignProxyDB           [ the path to the cosign proxy DB]
        CosignAllowPublicAccess         [ on | off ]
            make authentication optional for protected sites
        CosignGetKerberosTickets        [ on | off ]
            module asks for tgt from cosignd
        CosignKerberosSetupGSS          [ on | off ]
            setup the enviornment so that other apache modules
            that need GSSAPI/Kerberos work. e.g. IMP running under
	    mod_php
        CosignGetProxyCookies   [ on | off ]
            module asks for proxy cookies from cosignd
	    
		The certificate CN of the weblogin server must
		match CosignHostname.
	    
./configure may take the following options:
--enable-krb=path_to_krb                enables Kerberos V
--enable-apache1=path_to_apxs_1.3       enables Apache 1.3 filter
--enable-apache2=path_to_apxs_2         enables Apache 2 filter
--with-GSS                              enables GSSAPI
--with-filterdb=DIR                     overrides default of /var/cosign/filter