Eu não estou familiarizado com os detalhes do 10.10, mas vou assumir que ele é bem próximo do Debian.
Uma coisa que você pode fazer é basicamente configurar para separar configurações stunnel. Em que aceita SSL, e encaminha para uma porta local, e outro que escuta nessa porta local e, em seguida, faz conexões SSL para o host externo. Esses dois podem ser vinculados à interface de loopback apenas para que os dados não criptografados não cruzem a rede. Apenas tenha em mente que você está basicamente realizando um ataque MITM contra si mesmo. Eu usei uma configuração como essa enquanto ajudava a diagnosticar alguns problemas com um serviço da web que um cara estava desenvolvendo.
A versão empacotada do stunnel no Debian / Ubuntu deve facilitar isso. Os scripts de inicialização basicamente iniciarão uma instância de stunnel para cada arquivo de configuração (* .conf) encontrado em / etc / stunnel4. Então você pode colocar as duas configurações separadas em / etc / stunnel4, gerar suas chaves, reiniciar stunnel e isso deve funcionar.
Então aqui está a primeira configuração que aceita o SSL
; /etc/stunnel/ssl_in.conf
; Certificate/key is needed in server mode and optional in client mode
cert = /etc/stunnel/srv1.keys
; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside chroot jail
pid = /srv1.pid
debug = 4
output = /var/log/stunnel4/ssl_in.log
; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
[ssl_in_imap]
accept = 993
connect = localhost:10993
[ssl_in_smtp]
accept = 587
connect = localhost:10587
Sua segunda instância que cria conexões de saída.
; /etc/stunnel/ssl_out.conf
; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside chroot jail
pid = /clt1.pid
; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client=yes
CAfile = clt1.ca
verify = 0
[ssl_out_imap]
accept = 10993
connect = remote_server:993
[ssl_out_smtp]
accept = 10587
connect = remote_server:10587
Para gerar o arquivo filename.keys para o servidor.
# Create a new key and preparte a CSR
openssl req -new -keyout filename.pem -out filename.csr
# Remove the passphrase from the key
openssl rsa -in filename.pem -out filename.key
# Self sign
openssl x509 -in filename.csr -out filename.cert -req -signkey filename.key -days 720
# combine files to get the keys file stunnel needs.
cat filename.key filename.cert > filename.keys
Seu arquivo ficará assim.
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDkwzyKrPRXGyvEgITm/7oC9fDU4Y7L9mtMXmcIR98cp0g1ndcz
...
qhP3y97k67EVdSC+92pIGrAL7kBWckpJ2HP1El4KeZg=
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICHzCCAYgCCQDq/33qh7Dq5TANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJV
...
ebbhvhYLx1KkhD8/dXEbU0+kNg==
-----END CERTIFICATE-----