トップページ > CentOS6.4 x86_64 > サーバー独自のSSL自己署名証明書の作成とWeb&Mailサーバーの設定

サーバー独自のSSL自己署名証明書の作成とWeb&Mailサーバーの設定

777 views

実現する機能

ユーザ名やパスワード等の機密情報をWebブラウザから入力する場合、盗聴される恐れがあるため、Webサーバー間の通信内容を暗号化するのが一般的です。ここでは、Webサーバーにmod_sslを導入して、URLをhttp://〜ではなく、https://〜でアクセスすることによって、Webサーバー間の通信内容を暗号化できるようにします。自サイトでもメールサーバーやサーバーの管理ツールは暗号化された情報でやりとりをしなくてはなりませんので、導入の必要に迫られ実施しました。

事前準備

Webサーバー(Apache)メールサーバー(Postfix & Dovecot)が構築済であることが前提です。

(1)サーバー用秘密鍵・証明書作成

[root@ufuso ~]# cd /etc/pki/tls/certs/ ← ディレクトリ移動

[root@ufuso certs]# sed -i 's/365/3650/g' Makefile ← サーバー用証明書有効期限を1年から
10年に変更

[root@ufuso certs]# make server.key ← サーバー用秘密鍵の作成
umask 77 ; \
	/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
.....................................................................+++
.+++
e is 65537 (0x10001)
Enter pass phrase:← パスワードの作成入力(忘れないこと)
Verifying - Enter pass phrase:← パスワードの作成再入力

[root@ufuso certs]# openssl rsa -in server.key -out server.key ← サーバー用
秘密鍵からパスワード削除
Enter pass phrase for server.key: ← 上記で応答したパスワードを入力(非表示)
writing RSA key

[root@ufuso certs]# make server.crt ← サーバー用秘密鍵の作成
umask 77 ; \
	/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP ← 国名応答
State or Province Name (full name) []:Okinawa ← 都道府県名応答
Locality Name (eg, city) [Default City]:Naha ← 市区町村名応答
Organization Name (eg, company) [Default Company Ltd]:ShikakiraCS ← 組織名が無ければドメイン名でも入力
Organizational Unit Name (eg, section) []: ← 空のままエンター・キーを押す
Common Name (eg, your name or your server's hostname) []:ufuso.dip.jp ← ホストネーム=ドメイン名
Email Address []:webmaster@ufuso.dip.jp ← 管理者のメルアド

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ← エンターキー押下
An optional company name []: ← エンターキー押下

[root@ufuso certs]# chmod 400 server.* ← アクセス不可設定

※パスワードを削除するのは、Webサーバー起動時にパスワードを要求されないようにするため

(2)Webサーバー(httpd)の設定

[root@ufuso ~]# yum -y install mod_ssl  ← mod_sslインストール
Installed:
  mod_ssl.x86_64 1:2.2.15-26.el6.centos                                         

Complete!
[root@ufuso certs]#  vi /etc/httpd/conf.d/ssl.conf ← ApacheSSL設定ファイル編集
#  General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html" ← #を削除(コメント解除)
ServerName ufuso.dip.jp:443 ← #を削除(コメント解除)してホスト名を入力

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt ← #を付けて
SSLCertificateFile /etc/pki/tls/certs/server.crt← サーバー用証明書を指定

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ← #を付けて
SSLCertificateKeyFile /etc/pki/tls/certs/server.key ← サーバー用秘密鍵を指定

(4)Apache設定反映

[root@ufuso certs]# /etc/rc.d/init.d/httpd restart ← Apache再起動
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

(5)ポート443番のOPEN
ルーター側の設定でポート443番をOPENする。
※ルーターの設定は各ルーターのマニュアルまたはメーカー別ルーターポート開放手順を参照
ポートチェック【外部からポート開放確認】で「host名」にサーバー名(例:ufuso.dip.jp)、「port番号」に443と入力して「ポートチェック」ボタン押下し、「ホスト=ufuso.dip.jp ポート=443 にアクセスできました。」と表示されることを確認。

(6)WebサーバーSSL確認
自サイト(例示ではhttps://ufuso.dip.jp/)にアクセスして「セキュリティの警告」ウィンドウが表示されるので、赤枠をクリックしてWebページが表示されればOK(画面はWindowsXPの場合)

(7)Mailサーバーの設定(Postfix & Dovecot)

[root@ufuso ~]# vi /etc/postfix/main.cf ← postfix設定ファイル(main)編集
以下を最終行に追加(TLS通信の有効化)

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache


[root@ufuso ~]# vi /etc/postfix/master.cf ← postfix設定ファイル(master)編集
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
#submission inet n       -       n       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       n       -       -       smtpd ← 行頭の#を削除
  -o smtpd_tls_wrappermode=yes ← 行頭の#を削除(コメント解除)
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

[root@ufuso ~]# vi /etc/dovecot/conf.d/10-ssl.conf ← 10-ssl.confの編集
##
## SSL settings
##

# SSL/TLS support: yes, no, required. 
ssl = yes ← #解除

# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ← #付加
#ssl_key = </etc/pki/dovecot/private/dovecot.pem ← #付加
ssl_cert = </etc/pki/tls/certs/server.crt ← 追記
ssl_key = </etc/pki/tls/certs/server.key ← 追記

[root@ufuso ~]# /etc/rc.d/init.d/postfix restart ← 再起動
postfix を停止中:                                          [  OK  ]
postfix を起動中:                                          [  OK  ]

[root@ufuso ~]# /etc/rc.d/init.d/dovecot restart ← 再起動
Dovecot Imap を停止中:                                     [  OK  ]
Dovecot Imap を起動中:                                     [  OK  ]

(8)ポート465番のOPEN
ルーター側の設定でポート465番をOPENにします。
※ルーターの設定は各ルーターのマニュアルまたはメーカー別ルーターポート開放手順を参照

ポートチェック【外部からポート開放確認】で「host名」にサーバー名(例:ufuso.dip.jp)、「port番号」に465と入力して「ポートチェック」ボタン押下し、「ホスト=ufuso.jp ポート=465 にアクセスできました。」と表示されることを確認。

(9)ポート995番(POPの場合)または993番(IMAPの場合)のOPEN
ルーター側の設定でポート995番(POPの場合)または993番(IMAPの場合)をOPENにします。
※ルーターの設定は各ルーターのマニュアルまたはメーカー別ルーターポート開放手順を参照

ポートチェック【外部からポート開放確認】で「host名」にサーバー名(例:ufuso.jp)、「port番号」に995(POPの場合)または993(IMAPの場合)と入力して「ポートチェック」ボタン押下し、「ホスト=ufuso.jp ポート=995(POPの場合)または993(IMAPの場合) にアクセスできました。」と表示されることを確認。

(10)メールサーバー確認
・内部で同一ユーザ同士でメールの送受信
・内部で外部(プロバイダのメールアドレス等)との送受信
・内部で携帯との送受信※
※携帯はドメイン指定受信等でメールサーバーからのメールが拒否されないようにしておくこと



にほんブログ村 IT技術ブログへ←お役に立ちましたらクリックをお願いいたします。にほんブログ村IT技術ブログへ参加しています


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

CAPTCHA