ネットスケープが開発したSSLのIETF(The Internet Engineering Task Force)の呼び名がTLSです。
SSLとTLSはほぼ同一視できます。
大まかなSSL導入手順は下記の通りです。
必要なフィルは/etc/nginx/sslへ作成しました。
ファイル名 | 内容 | 作成/発行 | Nginx | Postfix |
---|---|---|---|---|
example.com.key | 秘密鍵 | サーバー | / | / |
example.com.key.rsa | example.com.keyからパスフレーズを削除したファイル(※) | サーバー | ○ | ○ |
example.com.csr | CSR | サーバー | / | / |
example.com.cert | サーバー証明書 | 認証機関 | × | ○ |
example.com.pem | サーバー証明書 + 中間CA証明書 | 認証機関 | ○ | × |
(※) example.com.keyは認証用のパスフレーズを含みます。
NginxやPostfixで起動時パスフレーズ認証を省くときは
下記方法でパスフレーズを削除したファイルを作成できます。
openssl rsa -in example.com.key -out example.com.key.rsa
以下の操作はrootで実行しました。
既にOpenSSLは導入済みでした。
バージョンを確認します。
$ openssl version
/etc/nginx/ssl/example.com.key(ファイル名は任意)という名称でRSA暗号方式の秘密鍵を作成します。
$ su root
# cd /etc/ngnx
# mkdir ssl
# cd ssl
# openssl genrsa -des3 -out ./example.com.key 2048
このときパスワードを求められます。パスワードは以降の処理で必要になります。
秘密鍵の作成で利用したパスワードは以降で利用します。
SSLの申請で必要になるCSRを作成します。
/etc/nginx/ssl/example.com.csr(ファイル名は任意)という名称でCSRを作成しました。
# cd /etc/nginx/ssl
# openssl req -new -key ./example.com.key -out ./example.com.csr
# 下記の表の値を入力していく。
フィールド | 説明 | 設定値 |
---|---|---|
Country Name※ | 国を示す2文字のISO略語 | JP |
State or Province Name※ | 都道府県 | Nagoya |
Locality Name | 市区町村 | Nagoya-shi |
Organization Name | 組織名 | Example |
Organization Unit Name | 部署名 | ハイフン |
Common Name | ウェブサーバのFQDN | www.example.com |
Email Address | 入力不要 | 未入力 |
A challenge password | 入力不要。 | 未入力 |
An optional company name | 入力不要 | 未入力 |
CSRの内容をフォームにコピーし必要事項を記載しSSLの申請を行いました。
メールに記載のリンクをクリックし承認します。
件名「RapidSSL Fulfilment E-Mail」というメールが送信されます。
Rapid SSLサーバー証明書と中間CA証明書が記載されています。
サーバー証明書と中間証明書を結合してpemファイル作成します。
/etc/nginx/ssl/example.com.pemを作成しました。
AWS EC2 Security GroupでHTTPSを開放します。
/etc/nginx/sites-available/defaultへSSLの記載を行います。
.....
server {
listen 443;
server_name yourdomain.com;
ssl on;
# 秘密鍵
ssl_certificate_key /etc/nginx/ssl/example.com.key.rsa;
# 証明書
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
.........
}
設定が正しいかは下記コマンドで確認できます。
# nginx -t
/etc/postfix/main.cf
/etc/postfix/master.cf
TLSの項目を追加します。
# TLS parameters
# smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file=/etc/nginx/ssl/example.com.cert
smtpd_tls_key_file=/etc/nginx/ssl/example.com.key.rsa
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom
smtpsの項目をコメントアウトします。
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。