Also I remember having to have three parts with openssl on Linux.

SSLCertificateFile    /etc/apache2/ssl/basinc.biz.crt
SSLCertificateKeyFile /etc/apache2/ssl/basinc.biz.key

Then I remember having to merge two files together to create the chain file
(just using a basic unix cat command I believe)

 SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt

I remember these two links being helpful:
Of course its all openssl based.  Not sure how the gsk stuff works with IBM.

http://jasoncodes.com/posts/startssl-free-ssl
http://lowtek.ca/roo/2012/ubuntu-apache2-trusted-ssl-certificate-from-startssl/



On Mon, Feb 18, 2013 at 8:14 AM, John Thompson <jthompson...@gmail.com>wrote:

> So I'm guessing you aren't using the open source version of apache, but,
> the IBM AIX flavor of it.
> Which I'm guessing is IHS.
>
> I've never worked with that before.
> Does the customer have IBM support?  Maybe they have some guru that can
> send you an example?
>
> I have some notes on this on Linux.
>
> Here is an example of a virtual host section that did work with ssl on
> Apache on Linux (open source).
> It did not use gsk and ihs, but, openssl and open source apache.
>
> I included the comments because I thought it might help.
> BUT, all you need are the un-commented lines.
>
> </VirtualHost>
> <IfModule mod_ssl.c>
>
> #May need this if not included elsewhere in apache config files.
> #NameVirtualHost *:443
> #Listen 443
>
> <VirtualHost *:443>
>         ServerAdmin some...@foo.com
>         ServerName foo.com
>
>         DocumentRoot /var/www/somesite
>
>         <Directory /var/www/somesite>
> #Disable Options we don't need
>                 Options -Indexes +Includes -ExecCGI +FollowSymLinks
> -MultiViews
>                 AllowOverride None
>                 Order allow,deny
>                 allow from all
>         </Directory>
>
>         ErrorLog /var/log/apache2/error.log
>
>         # Possible values include: debug, info, notice, warn, error, crit,
>         # alert, emerg.
>         LogLevel warn
>
>         CustomLog /var/log/apache2/ssl_access.log combined
>
>         Alias /doc/ "/usr/share/doc/"
>         <Directory "/usr/share/doc/">
>                 Options Indexes MultiViews FollowSymLinks
>                 AllowOverride None
>                 Order deny,allow
>                 Deny from all
>                 Allow from 127.0.0.0/255.0.0.0 ::1/128
>         </Directory>
>
>         #   SSL Engine Switch:
>         #   Enable/Disable SSL for this virtual host.
>         SSLEngine on
>
>         #   A self-signed (snakeoil) certificate can be created by
> installing
>         #   the ssl-cert package. See
>         #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
>         #   If both key and certificate are stored in the same file, only
> the
>         #   SSLCertificateFile directive is needed.
>         SSLCertificateFile    /etc/apache2/ssl/basinc.biz.crt
>         SSLCertificateKeyFile /etc/apache2/ssl/basinc.biz.key
>
>         #   Server Certificate Chain:
>         #   Point SSLCertificateChainFile at a file containing the
>         #   concatenation of PEM encoded CA certificates which form the
>         #   certificate chain for the server certificate. Alternatively
>         #   the referenced file can be the same as SSLCertificateFile
>         #   when the CA certificates are directly appended to the server
>         #   certificate for convinience.
>         SSLCertificateChainFile
> /etc/apache2/ssl/startssl.chain.class1.server.crt
>
>         #   Certificate Authority (CA):
>         #   Set the CA certificate verification path where to find CA
>         #   certificates for client authentication or alternatively one
>         #   huge file containing all of them (file must be PEM encoded)
>         #   Note: Inside SSLCACertificatePath you need hash symlinks
>         #         to point to the certificate files. Use the provided
>         #         Makefile to update the hash symlinks after changes.
>         #SSLCACertificatePath /etc/ssl/certs/
>         #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt
>
>         #   Certificate Revocation Lists (CRL):
>         #   Set the CA revocation path where to find CA CRLs for client
>         #   authentication or alternatively one huge file containing all
>         #   of them (file must be PEM encoded)
>         #   Note: Inside SSLCARevocationPath you need hash symlinks
>         #         to point to the certificate files. Use the provided
>         #         Makefile to update the hash symlinks after changes.
>         #SSLCARevocationPath /etc/apache2/ssl.crl/
>         #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl
>
>         #   Client Authentication (Type):
>         #   Client certificate verification type and depth.  Types are
>         #   none, optional, require and optional_no_ca.  Depth is a
>         #   number which specifies how deeply to verify the certificate
>         #   issuer chain before deciding the certificate is not valid.
>         #SSLVerifyClient require
>         #SSLVerifyDepth  10
>
>         #   Access Control:
>         #   With SSLRequire you can do per-directory access control based
>         #   on arbitrary complex boolean expressions containing server
>         #   variable checks and other lookup directives.  The syntax is a
>         #   mixture between C and Perl.  See the mod_ssl documentation
>         #   for more details.
>         #<Location />
>         #SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
>         #            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
>         #            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
>         #            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
>         #            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
>         #           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
>         #</Location>
>
>         #   SSL Engine Options:
>         #   Set various options for the SSL engine.
>         #   o FakeBasicAuth:
>         #     Translate the client X.509 into a Basic Authorisation.  This
> means that
>         #     the standard Auth/DBMAuth methods can be used for access
> control.  The
>         #     user name is the `one line' version of the client's X.509
> certificate.
>         #     Note that no password is obtained from the user. Every entry
> in the user
>         #     file needs this password: `xxj31ZMTZzkVA'.
>         #   o ExportCertData:
>         #     This exports two additional environment variables:
> SSL_CLIENT_CERT and
>         #     SSL_SERVER_CERT. These contain the PEM-encoded certificates
> of the
>         #     server (always existing) and the client (only existing when
> client
>         #     authentication is used). This can be used to import the
> certificates
>         #     into CGI scripts.
>         #   o StdEnvVars:
>         #     This exports the standard SSL/TLS related `SSL_*'
> environment variables.
>         #     Per default this exportation is switched off for performance
> reasons,
>         #     because the extraction step is an expensive operation and is
> usually
>         #     useless for serving static content. So one usually enables
> the
>         #     exportation for CGI and SSI requests only.
>         #   o StrictRequire:
>         #     This denies access when "SSLRequireSSL" or "SSLRequire"
> applied even
>         #     under a "Satisfy any" situation, i.e. when it applies access
> is denied
>         #     and no other module can change it.
>         #   o OptRenegotiate:
>         #     This enables optimized SSL connection renegotiation handling
> when SSL
>         #     directives are used in per-directory context.
>         #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
>         <FilesMatch "\.(cgi|shtml|phtml|php)$">
>                 SSLOptions +StdEnvVars
>         </FilesMatch>
>         <Directory /usr/lib/cgi-bin>
>                 SSLOptions +StdEnvVars
>         </Directory>
>
>         #   SSL Protocol Adjustments:
>         #   The safe and default but still SSL/TLS standard compliant
> shutdown
>         #   approach is that mod_ssl sends the close notify alert but
> doesn't wait for
>         #   the close notify alert from client. When you need a different
> shutdown
>         #   approach you can use one of the following variables:
>         #   o ssl-unclean-shutdown:
>         #     This forces an unclean shutdown when the connection is
> closed, i.e. no
>         #     SSL close notify alert is send or allowed to received.  This
> violates
>         #     the SSL/TLS standard but is needed for some brain-dead
> browsers. Use
>         #     this when you receive I/O errors because of the standard
> approach where
>         #     mod_ssl sends the close notify alert.
>         #   o ssl-accurate-shutdown:
>         #     This forces an accurate shutdown when the connection is
> closed, i.e. a
>         #     SSL close notify alert is send and mod_ssl waits for the
> close notify
>         #     alert of the client. This is 100% SSL/TLS standard
> compliant, but in
>         #     practice often causes hanging connections with brain-dead
> browsers. Use
>         #     this only for browsers where you know that their SSL
> implementation
>         #     works correctly.
>         #   Notice: Most problems of broken clients are also related to
> the HTTP
>         #   keep-alive facility, so you usually additionally want to
> disable
>         #   keep-alive for those clients, too. Use variable "nokeepalive"
> for this.
>         #   Similarly, one has to force some clients to use HTTP/1.0 to
> workaround
>         #   their broken HTTP/1.1 implementation. Use variables
> "downgrade-1.0" and
>         #   "force-response-1.0" for this.
>         BrowserMatch "MSIE [2-6]" \
>                 nokeepalive ssl-unclean-shutdown \
>                 downgrade-1.0 force-response-1.0
>         # MSIE 7 and newer should be able to use keepalive
>         BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
>
> </VirtualHost>
> </IfModule>
>
>
> On Sat, Feb 16, 2013 at 7:02 PM, Kevin King <ke...@precisonline.com>wrote:
>
>> Might anyone have any tips or tricks for getting SSL to work on the
>> IBMIHS/Apache 2.0.47 web server on an AIX 5.3 box?  The documentation I've
>> found on the web is byzantine at best and it would be fine if the commands
>> actually worked, but I keep getting odd error messages and stalled at
>> every
>> turn.
>>
>> I've upgrade the GSK so that the server will start with SSL enabled, I
>> have
>> a virtual host configured, but I have no clue how to tie a specific
>> certificate to the VirtualHost.  Well, let's say I have clues, but nothing
>> is working.  Here's the <VirtualHost> stanza I have set up in httpd.conf:
>>
>> <VirtualHost *:443>
>>         SSLEnable
>>         SSLClientAuth None
>>         SSLServerCert api.client.com
>>         ServerName api.client.com
>>         DocumentRoot /usr/www
>>         <Directory "/usr/www">
>>              Order Allow,Deny
>>              Allow From All
>>         </Directory>
>>         ErrorLog logs/api_error.log
>>         CustomLog logs/api_error.log common
>> </VirtualHost>
>>
>> I've been able to generate a CSR and create a self-signed certificate, and
>> it would appear that I've even successfully imported that certificate into
>> my key database, as demonstrated by this command:
>>
>> $ gsk7cmd -cert -details -db /usr/IBMIHS/ssl/client.kdb -label "
>> api.client.com" -pw "password"
>>
>> ...which produces the following output...
>>
>> Label: api.client.com
>> Key Size: 512
>> Version: X509 V1
>> Serial Number: 00 DB 00 41 9A 19 77 7E 9F
>> Issued By: api.client.com
>> CLIENT
>> City, ST, US
>> Subject: api.client.com
>> CLIENT
>> City, ST, US
>> Valid From: Saturday, February 16, 2013 6:06:08 PM EST To: Saturday, April
>> 17, 2032 7:06:08 PM EDT
>> Fingerprint: ...
>> Signature Algorithm: 1.2.840.113549.1.1.5
>> Trust Status: enabled
>>
>> But even though this certificate is in the keyfile (and yes, I have a
>> KeyFile directive elsewhere in the httpd.conf file pointing to the
>> client.kdb file) I can't seem to associate it to the virtual host.  What
>> am
>> I missing?
>>
>> (And yes, I'm aware this is not specifically a U2 question but I need this
>> to provide web connectivity to a Unidata machine from a Rackspace hosted
>> server.  So in a way... it sorta is U2 related.)
>>
>> Help?
>> _______________________________________________
>> U2-Users mailing list
>> U2-Users@listserver.u2ug.org
>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>>
>
>
>
> --
> John Thompson
>



-- 
John Thompson
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to