CentOS 6.5 - Web サーバ Nginx で SSL 接続!

Updated:


前回は CentOS 6.5 サーバ上のサーバ監視ツール munin で Web(HTTP) サーバ Nginx の監視設定を行いました。
今回は Web(HTTP) サーバ Nginx で SSL 接続するため設定を行います。

0. 前提条件

1. SSL 証明書作成

SSL 証明書を以下のようにして作成する。

# cd /etc/pki/tls/certs
# sed -i 's/365/3650/g' Makefile
# make server.crt
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:                                            # <= パスワード確認入力
umask 77 ; \
        /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0
Enter pass phrase for server.key:                                         # <= パスワード入力
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) []:Shimane                             # <= 都道府県名
Locality Name (eg, city) [Default City]:Matsue                            # <= 市区町村名
Organization Name (eg, company) [Default Company Ltd]:mk-mode.com         # <= 会社名・サイト名
Organizational Unit Name (eg, section) []:                                # <= 部署名
Common Name (eg, your name or your server's hostname) []:www.mk-mode.com  # <= ホスト名・管理者名
Email Address []:webmaster@mk-mode.com                                    # <= 管理者メールアドレス

2. パスワード削除

サーバ用秘密鍵からパスワードを削除する。

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:  # <= パスワード入力
writing RSA key

3. Nginx 設定ファイル編集

以下のように、Nginx 設定ファイル “HTTPS server” 用 “server” ディレクティブ内を、コメント解除しキー設定を先ほど設定したものに変更する。

File: /usr/local/nginx/conf/nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    # HTTPS server
    #
    server {
        listen       443;
    #    server_name  localhost;
        server_name  www.mk-mode.com;

        ssl                  on;
    #    ssl_certificate      cert.pem;
        ssl_certificate      /etc/pki/tls/certs/server.crt;
    #    ssl_certificate_key  cert.key;
        ssl_certificate_key  /etc/pki/tls/certs/server.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

4. Nginx 再起動

# /etc/rc.d/init.d/nginx restart
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
nginx を停止中:                                            [  OK  ]
nginx を起動中:                                            [  OK  ]

5. 動作確認

ブラウザから https://<サーバ名orIPアドレス>/ にアクセスし、セキュリティに関するページが表示されたら適宜インストールする。
ブラウザにより異なるが、Firefox なら「危険を理解した上で接続するには」をクリック後「例外追加」ボタンをクリックする。そして開いたウィンドウ内で「セキュリティ例外を追加」ボタンをクリックする。
認証に成功すると以下のように表示される。

CENTOS_6-5_NGINX_SSL

参考サイト


次回は、PHP のインストール(ソースビルド)について紹介する予定です。

以上。





 

Sponsored Link

 

Comments