C++HTTPSサーバを実際に作成しています。実装に関しては情報が少ないため、かなり難しいです。
しかし、なんとか目途がたったので役に立つ情報を出してみたいと思います。
なお、使用する暗号形式はTLS_RSA_WITH_AES128_CBC_SHAに限定します。TSL1.0はSSL3.1とします。それ以下(SSL3.0, 2.0, 1.0)は無視します。
まず、鍵の作成から。秘密鍵と公開鍵は2048bitです。この段階で共有鍵の設定はありません。最新のUbuntu上でOPENSSLを実行します。


openssl genrsa -aes256 -out server.pem 2048
openssl req -new -key server.pem -out server.csr
cp server.pem server.pem.org
openssl rsa -in server.pem.org -out server.pem
openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt
openssl rsa -inform PEM -outform DER -in server.pem -out key.der
openssl x509 -inform PEM -outform DER -in server.crt -out cert.der
openssl pkcs12 -export -in server.crt -inkey server.pem -out server.pfx


key.derがRSA秘密鍵。cert.derがX508サーバ証明書+RSAの公開鍵です。server.pfxはこれらがone packageになった便利ファイルです。
AESの共通鍵はサーバ上でランダム値を元に生成されます。長すぎる有効期間はFirefoxではエラーになるようです。


パケットモニター: Wireshark


パケットモニターは開発に必要なデバッグツールです。Wiresharkは.pfxファイルを読み込ませると暗号化データを復号化してくれます。ダンプファイルも出力します。旧名Etherealです。