Create your own server certificate request:
openssl genrsa -des3 -out server.key 1024

Remove the passphrase (optional, but makes your apache startup much faster)
openssl rsa -in server.key -out server.key.unsecure

Create the signature request
openssl req -new -key server.key -out server.csr

Create your own Certificate Authority

openssl genrsa -des3 -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.crt

Create this script to /tmp/sign.sh (Use this faq source)
#!/bin/sh
##
## sign.sh -- Sign a SSL Certificate Request (CSR)
## Copyright (c) 1998-1999 Ralf S. Engelschall, All Rights Reserved.
##

# argument line handling
CSR=$1
if [ $# -ne 1 ]; then
echo "Usage: sign.sign .csr"; exit 1
fi
if [ ! -f $CSR ]; then
echo "CSR not found: $CSR"; exit 1
fi
case $CSR in
*.csr ) CERT="`echo $CSR | sed -e 's/\.csr/.crt/'`" ;;
* ) CERT="$CSR.crt" ;;
esac

# make sure environment exists
if [ ! -d ca.db.certs ]; then
mkdir ca.db.certs
fi
if [ ! -f ca.db.serial ]; then
echo '01' >ca.db.serial
fi
if [ ! -f ca.db.index ]; then
cp /dev/null ca.db.index
fi

# create an own SSLeay config
cat >ca.config <<EOT
[ ca ]
default_ca = CA_own
[ CA_own ]
dir = /etc/apache2
certs = /etc/apache2/certs
new_certs_dir = /etc/apache2/ca.db.certs
database = /etc/apache2/ca.db.index
serial = /etc/apache2/ca.db.serial
RANDFILE = /etc/apache2/ca.db.rand
certificate = /etc/apache2/certs/ca.crt
private_key = /etc/apache2/private/ca.key
default_days = 365
default_crl_days = 30
default_md = md5
preserve = no
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
EOT

# sign the certificate
echo "CA signing: $CSR -> $CERT:"
openssl ca -config ca.config -out $CERT -infiles $CSR
echo "CA verifying: $CERT <-> CA cert"
openssl verify -CAfile /etc/apache2/certs/ca.crt $CERT

# cleanup after SSLeay
rm -f ca.config
rm -f ca.db.serial.old
rm -f ca.db.index.old

# die gracefully
exit 0

Sign your server certificate
/tmp/sign.sh server.csr

Move the Certificates to /etc/apache2/certs and the keys to /etc/apache2/keys
Edit your httpd.conf to include httpd-ssl.conf
And edit your httpd-ssl.conf to set the following directives correctly

SSLCertificateFile “/private/etc/apache2/certs/server.crt”
SSLCertificateKeyFile “/private/etc/apache2/keys/server.key”