diff -cr pgsql/doc/src/sgml/client-auth.sgml pgsql_ssl/doc/src/sgml/client-auth.sgml
*** pgsql/doc/src/sgml/client-auth.sgml Sat Jul 15 23:35:47 2000
--- pgsql_ssl/doc/src/sgml/client-auth.sgml Sun Aug 27 15:24:39 2000
***************
*** 53,58 ****
--- 53,59 ----
local databaseauthentication-method [ authentication-option ]
host databaseIP-addressIP-maskauthentication-method [ authentication-option ]
+ hostssl databaseIP-addressIP-maskauthentication-method [ authentication-option ]
The meaning of the fields is as follows:
***************
*** 75,80 ****
--- 76,95 ----
networks. Note that TCP/IP connections are completely disabled
unless the server is started with the or
the equivalent configuration parameter is set.
+
+
+
+
+
+ hostssl
+
+
+ This record pertains to connection attemps with SSL over
+ TCP/IP. Note that SSL connections are completely disabled
+ unless the server is started with the ,
+ and also require ordinary TCP/IP connections to be enabled.
+ SSL connections also require SSL support to be enabled in
+ the backend at compile time.
diff -cr pgsql/doc/src/sgml/installation.sgml pgsql_ssl/doc/src/sgml/installation.sgml
*** pgsql/doc/src/sgml/installation.sgml Sat Jul 22 16:48:01 2000
--- pgsql_ssl/doc/src/sgml/installation.sgml Sun Aug 27 15:38:41 2000
***************
*** 592,597 ****
--- 592,615 ----
+ --with-openssl=DIRECTORY>
+
+
+ Build with support for SSL (encrypted) connections.
+ This requires the OpenSSL library to be installed.
+ The DIRECTORY> argument specifies the
+ root directory of the OpenSSL installation.
+
+
+
+ configure> will check for the required header
+ files and libraries to make sure that your OpenSSL
+ installation is sufficient before proceeding.
+
+
+
+
+ --enable-syslog
diff -cr pgsql/doc/src/sgml/libpq.sgml pgsql_ssl/doc/src/sgml/libpq.sgml
*** pgsql/doc/src/sgml/libpq.sgml Tue May 2 22:01:52 2000
--- pgsql_ssl/doc/src/sgml/libpq.sgml Sun Aug 27 15:42:06 2000
***************
*** 177,182 ****
--- 177,193 ----
+
+
+ requiressl
+
+
+ Set to '1' to require SSL connection to the backend. Libpq
+ will then refuse to connect if the server does not support
+ SSL. Set to '0' (default) to negotiate with server.
+
+
+
If any parameter is unspecified, then the corresponding
***************
*** 631,636 ****
--- 642,666 ----
Note that the PID belongs to a process
executing on the database
server host, not the local host!
+
+
+
+
+
+ PQgetssl
+ Returns the SSL structure used in the connection, or NULL
+ if SSL is not in use.
+
+ SSL *PQgetssl(const PGconn *conn);
+
+ This structure can be used to verify encryption levels, check
+ server certificate and more. Refer to the OpenSSL documentation
+ for information about this structure.
+
+
+ You must define USE_SSL in order to get the
+ prototype for this function. Doing this will also
+ automatically include ssl.h from OpenSSL.
diff -cr pgsql/doc/src/sgml/runtime.sgml pgsql_ssl/doc/src/sgml/runtime.sgml
*** pgsql/doc/src/sgml/runtime.sgml Fri Aug 11 20:31:06 2000
--- pgsql_ssl/doc/src/sgml/runtime.sgml Sun Aug 27 15:29:27 2000
***************
*** 1710,1715 ****
--- 1710,1771 ----
+ Secure TCP/IP Connection with SSL
+
+
+ PostgreSQL has native support for connections over SSL to encrypt
+ client/server communications for increased security. This requires
+ OpenSSL to be installed on both client
+ and server systems and support enabled at compile-time using
+ the configure script.
+
+
+
+ With SSL support compiled in, the Postgres backend can be
+ started with argument -l to enable SSL connections.
+ When starting in SSL mode, the postmaster will look for the
+ files server.key and
+ server.cert in the PGDATA
+ directory. These files should contain the server private key and
+ certificate respectively. If the private key is protected with a
+ passphrase, the postmaster will prompt for the passphrase and not
+ start until it has been provided.
+
+
+
+ The postmaster will listen for both standard and SSL connections
+ on the same TCP/IP port, and will negotiate with any connecting
+ client wether to use SSL or not. Use the pg_hba.conf
+ file to optionally require SSL in order to accept a connection.
+
+
+
+ For details on how to create your server private key and certificate,
+ refer to the OpenSSL documentation. A simple self-signed certificate
+ can be used to get started testing, but a certificate signed by a CA
+ (either one of the global CAs or a local one) should be used in
+ production so the client can verify the servers identity. To create
+ a quick self-signed certificate, use the CA.pl
+ script included in OpenSSL:
+
+ CA.pl -newcert
+
+ Fill out the information the script asks for. Make sure to enter
+ the local hostname as Common Name. The script will generate a key
+ which is passphrase protected. To remove the passphrase (required
+ if you want automatic startup of the postmaster), run the command
+
+ openssl x509 -inform PEM -outform PEM -in newreq.pem -out newkey_no_passphrase.pem
+
+ Enter the old passphrase to unlock the existing key. Copy the file
+ newreq.pem to PGDATA/server.cert
+ and newkey_no_passphrase.pem to
+ PGDATA/server.key. Remove the PRIVATE KEY part
+ from the server.cert using any text editor.
+
+
+
+ Secure TCP/IP Connection with SSH