mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Debian 7 Wheezy - Apache2 の SSL 化!

[ サーバ構築 ] [ Apache, Debian, Linux, SSL ]

こんばんは。

Debian GNU/Linux 7 Wheezy サーバ上の Web サーバ Apache2 を SSL 化する方法についての記録です。

以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。

0. 前提条件

  • Debian GNU/Linux 7.1.0 での作業を想定。
  • Web サーバは Apache2 を想定。

1. サーバ証明書作成

Apache2 を SSL/TLS で使用できるようサーバ証明書を作成する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# cd /etc/ssl/private

# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
........................................................................................................................................+++
............................................................................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:              # <= サーバ鍵パスワード入力
Verifying - Enter pass phrase for server.key:  # <= サーバ鍵パスワード確認入力

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:              # <= サーバ鍵パスワード応答
writing RSA key

# openssl req -new -days 3650 -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) [AU]:JP                                    # <= 国の略名
State or Province Name (full name) [Some-State]:Shimane                 # <= 都道府県名
Locality Name (eg, city) []:Matsue                                      # <= 市区町村名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:mk-mode.com  # <= サイト名(何でもよい
Organizational Unit Name (eg, section) []:                              # <= 部署名(空でよい)
Common Name (e.g. server FQDN or YOUR name) []:www.mk-mode.com          # <= ホスト名
Email Address []:webmaster@mk-mode.com                                  # <= 管理者メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:      # <= 追加属性・空エンターでよい
An optional company name []:  # <= 追加属性・空エンターでよい

# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
Signature ok
subject=/C=JP/ST=Shimane/L=Matsue/O=mk-mode.com/CN=www.mk-mode.com/emailAddress=webmaster@mk-mode.com
Getting Private key

作成したサーバ証明書のパーミッションを設定する。(所有者読み込み専用に)

1
# chmod 400 server.*

2. SSL 設定ファイル編集

設定ファイル “sites-available/default-ssl” を以下のように編集する。

/etc/apache2/sites-available/default-ssl
1
2
3
4
5
6
7
8
ServerAdmin webmaster@mk-mode.com  # <= 管理者メールアドレス

Options FollowSymLinks ExecCGI     # <= シンボリックリンク許可、CGI スクリプト実行許可("/var/www" 部分)

AllowOverride All                  # <= .htaccessの許可

SSLCertificateFile /etc/ssl/private/server.crt     # <= 作成したサーバ証明書ファイル
SSLCertificateKeyFile /etc/ssl/private/server.key  # <= 作成した秘密鍵ファイル

3. SSL 設定実行

SSL 設定を有効化するために、以下のように実行する。

1
2
3
4
5
6
7
8
9
10
# a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
  service apache2 reload

# a2enmod ssl
Enabling module ssl.
See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  service apache2 restart

4. Apache2 再起動

さらに、Apache2 を再起動する。

1
2
# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

5. 動作確認

ブラウザで https://<Webサーバのホスト名 or IP アドレス>/ にアクセスしてみる。
見栄えはブラウザにより異なるが、証明書をインストールすれば、SSL 接続(HTTPS 接続)が可能になる。


以上。

Comments