外部から安全にアクセスするために,SSLを使ってHTTPSでの暗号化通信を導入します(`・ω・´)
SSLのインストール
まず,SSLを使用するためにopensslをインストールします。(apacheが入っている前提で話を進めます
$ sudo apt-get update
$ sudo apt-get install openssl
証明書の作成
インストールできたら,opensslを使って自己証明書と鍵を作っていきます。
作業するフォルダに移動して,ルートになっておきます。
$ mkdir /etc/apache2/ssl
$ cd /etc/apache2/ssl
$ sudo su
ここから,コマンド実行後に入力項目があるので,適宜入力していきます。秘密鍵の作成
# openssl genrsa -aes128 1024 > server.key
以下表示内容
Generating RSA private key, 1024 bit long modulus
......................++++++
..++++++
e is 65537 (0x10001)
Enter pass phrase: [パスワード入力]
Verifying - Enter pass phrase: [パスワード入力]
公開鍵の作成
# openssl req -new -key server.key > server.csr
以下表示内容
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) [AU]: [てきとーに入力:JP]
State or Province Name (full name) [Some-State]: [てきとーに入力:Nara]
Locality Name (eg, city) []: [てきとーに入力:Nara-Shi]
Organization Name (eg, company) [Internet Widgits Pty Ltd]: [てきとーに入力:Connecting The Dots]
Organizational Unit Name (eg, section) []: [てきとーに入力:]
Common Name (e.g. server FQDN or YOUR name) []: [てきとーに入力:]
Email Address []: [てきとーに入力:]
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 -days 365 -req -signkey server.key > server.crt
以下表示内容
Signature ok
subject=/C=JP/ST=Nara/L=Nara-Shi/O=Connecting The Dots/CN=
Getting Private key
Enter pass phrase for server.key: [さっき入力したパスワード]
ここまでで,SSLを使用するために必要なファイルを生成することができました。※証明書は定期的に更新する必要があります。(-daysのオプションで有効期限を指定しています
あとは,apacheの設定を行なっていきます。
apacheの設定
sslの有効化
$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/ssl.conf ssl.conf
$ sudo ln -s ../mods-available/ssl.load ssl.load
$ sudo a2enmod ssl
$ cd /etc/apache2/sites-enabled
$ sudo ln -s ../sites-available/default-ssl ssl
sslの設定
以下の内容を/etc/apache2/sites-enabled/sslに追加
<virtualhost _default_:443>
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
</VirtualHost>
apache再起動時のパスワード入力をなくす
$ cd /etc/apache2/ssl
$ sudo su
# mv server.key server.key.back
# openssl rsa -in server.key.back > server.key
以下表示内容
Enter pass phrase for server.key.back: [上で入力したパスワードを入力]
writing RSA key
最後にapache再起動
$ sudo service apache2 restart
で,問題が無ければ完成!!ここの内容は以下のサイトを参考にさせていただいています。
コメントを投稿