13,002
回編集
571行目: | 571行目: | ||
# Systemdサービスユニットを作成していない場合 | # Systemdサービスユニットを作成していない場合 | ||
/<Apache2のインストールディレクトリ>/bin/apachectl start | /<Apache2のインストールディレクトリ>/bin/apachectl start | ||
<br><br> | |||
== HTTPS(SSL)の設定 == | |||
==== 依存関係のライブラリのインストール ==== | |||
Apache2でSSLを使用する場合は、Apache2のapache2-mod_nssモジュールが必要となる。<br> | |||
sudo zypper install apache2-mod_nss | |||
<br> | |||
==== CSRについて ==== | |||
CSR(Certificate Signing Request)とは、証明書発行要求といい、認証局に対して行う、認証局の秘密鍵で署名してもらうためのリクエストのことである。<br> | |||
<br> | |||
CSRの中身を確認するためには、<code>req</code>コマンドに<code>-text</code>オプションを付加することで確認できる。<br> | |||
openssl req -text -in <サーバ証明書のファイル名>.csr | |||
# 出力例 | |||
Certificate Request: | |||
Data: | |||
Version: 0 (0x0) | |||
Subject: C=JP, ST=TOKYO, L=KAWASAKI, O=Kaisha, OU=Busho, CN=common.name | |||
Subject Public Key Info: | |||
Public Key Algorithm: rsaEncryption | |||
Public-Key: (2048 bit) | |||
(省略) | |||
Signature Algorithm: sha256WithRSAEncryption | |||
(省略) | |||
<br> | |||
上記の出力例において、[Signature Algorithm]項目は、sha256WithRSAEncryptionである。<br> | |||
SHA-1は解読されるリスクが高まっているため、今後作成するものはSHA-2とするべきである。<br> | |||
<br> | |||
SHA-2には、SHA-224、SHA-256、SHA-384、SHA-512の4種類がある。<br> | |||
SHA-512が最も安全性が高いが、クライアント端末側がSHA-512に対応している必要がある。<br> | |||
<br> | |||
==== 自己証明書の発行(サーバ側) ==== | |||
秘密鍵を作成する。<br> | |||
openssl genrsa -out <秘密鍵のファイル名>.key 2048 | |||
<br> | |||
作成した秘密鍵を使用して、CSRを作成する。<br> | |||
openssl req -sha256 -new -subj "/C=JP/ST=Tokyo/L=Tokyo City/O=Company Name/OU=Department/CN=*.<ドメイン名>" -key <秘密鍵のファイル名>.key -out <CSRのファイル名>.csr | |||
<br> | |||
作成したCSRに署名を行って、サーバ証明書を発行する。<br> | |||
<u><サーバ証明書のファイル名>.csrファイルは、サーバ証明書を発行するためのファイルのため、削除してもよい。</u><br> | |||
openssl x509 -sha256 -req -days <証明書の有効日数 例. 3650> -in <CSRのファイル名>.csr -signkey <秘密鍵のファイル名>.key -out <サーバ証明書のファイル名>.crt | |||
<br> | |||
秘密鍵のファイルのアクセス権限を変更する。<br> | |||
chmod 400 <秘密鍵のファイル名>.key | |||
<br> | |||
Webサーバに設置するものは、秘密鍵(.key拡張子)とサーバ証明書(.crt拡張子)の2つである。<br> | |||
<br> | |||
<u>また、ロードバランサにSSL証明書を設置して、SSL接続を終端することもできる。</u><br> | |||
<u>その場合、サーバ証明書は1つ用意して、ロードバランサからWebサーバまでの通信はhttpとなる。(httpsでも可能であるが、httpの方が負荷が軽いため)</u><br> | |||
<u>httpを使用するメリットとして、Webサーバで受けるアクセスがhttpとなるので負荷が減るためである。(暗号化された通信を複合するために、SSLの接続を受けるのは負荷が掛かる)</u><br> | |||
<br><br> | <br><br> | ||