https://
Jiri Barton
Problem
server
browser
internet
Share a secret!
Encode(Decode(SYMMETRIC)) == SYMMETRIC
server
browser
Share half of secret!
Encode_Public(Decode_Private(ASYMMETRIC)) == ASYMMETRIC
Encode_Private(Decode_Public(ASYMMETRIC)) == ASYMMETRIC
server
browser
https://....
here's my public certificate!
encode_with_public
decode_with_secret
Who are you?
server
browser
here's my public certificate!
Certificate Authority (CA)
Verisign
Thawte
Geotrust
Godaddy
...
PostSignum
TELE3
me
...
Signed certificate
server
browser
https://....
here's my public certificate!
Okay!
encode_with_public
Server certificates already!
server public cert, signed
server secret cert
SSLEngine on
SSLCertificateFile /etc/ssl/certs/www.praguecityhostel.cz.crt
SSLCertificateKeyFile /etc/ssl/private/www.praguecityhostel.cz.key
listen [::]:443 default_server ssl;
ssl_certificate /etc/ssl/certs/www.praguecityhostel.cz.crt;
ssl_certificate_key /etc/ssl/private/www.praguecityhostel.cz.key;
HOWTO
1. key
2. csr
3. (let) sign csr
4. get crt
5. install key & crt
key
crt
csr
1. key
cd /etc/ssl
mkdir -p private requests certs
openssl genrsa -out private/www.praguehostel.cz.key 2048
2. request
openssl req -new \
-key private/www.praguecityhostel.cz.key \
-config /etc/ssl/openssl.cnf \
-out requests/www.praguecityhostel.cz.csr
cat requests/www.praguecityhostel.cz.csr
3. sign
4. install
openssl rsa|req|x509 -in FILENAME -noout -text
Shoot the messenger