「インストール - Apache2(SUSE)」の版間の差分

ナビゲーションに移動 検索に移動
574行目: 574行目:


== HTTPS(SSL)の設定 ==
== HTTPS(SSL)の設定 ==
==== 依存関係のライブラリのインストール ====
Apache2でSSLを使用する場合は、Apache2のmod_ssl.soモジュールが必要となる。<br>
* パッケージ管理システムからインストール
*: SUSEでは、パッケージ管理システムからApache2をインストールした場合は、mod_ssl.soモジュールが自動的にインストールされる。
*: <br>
* ソースコードからインストール
*: ソースコードからApache2をインストールした場合は、mod_ssl.soモジュールが自動的にインストールされる。
<br>
==== CSRについて ====
==== CSRについて ====
CSR(Certificate Signing Request)とは、証明書発行要求といい、認証局に対して行う、認証局の秘密鍵で署名してもらうためのリクエストのことである。<br>
CSR(Certificate Signing Request)とは、証明書発行要求といい、認証局に対して行う、認証局の秘密鍵で署名してもらうためのリクエストのことである。<br>
623行目: 614行目:
Webサーバに設置するものは、秘密鍵(.key拡張子)とサーバ証明書(.crt拡張子)の2つである。<br>
Webサーバに設置するものは、秘密鍵(.key拡張子)とサーバ証明書(.crt拡張子)の2つである。<br>
<br>
<br>
<u>また、ロードバランサにSSL証明書を設置して、SSL接続を終端することもできる。</u><br>
SSLを有効にするため、NginXの設定ファイルを編集する。<br>
# パッケージ管理システムからインストールしている場合
sudo vi /etc/nginx/nginx.conf
# ソースコードからインストールしている場合
sudo vi /<Nginxのインストールディレクトリ>/etc/nginx.conf
<br>
<syntaxhighlight lang="nginx">
# HTTPS server
server {
    listen      443 ssl;  # HTTP/2を有効にする場合は、http2と追記する
    server_name  <ホスト名またはIPアドレスまたはドメイン名>;
    # サーバ証明書および中間証明書のファイルの指定
    ssl_certificate      <サーバ証明書のファイルのフルパス>;
    # 秘密鍵の指定
    ssl_certificate_key  <秘密鍵のファイルのフルパス>;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location / {
        root  <ドキュメントルートのパス(絶対パスまたは相対パス)>;
        index  index.html index.htm;
    }
}
</syntaxhighlight>
<br>
<u>ロードバランサにSSL証明書を設置して、SSL接続を終端することもできる。</u><br>
<u>その場合、サーバ証明書は1つ用意して、ロードバランサからWebサーバまでの通信はhttpとなる。(httpsでも可能であるが、httpの方が負荷が軽いため)</u><br>
<u>その場合、サーバ証明書は1つ用意して、ロードバランサからWebサーバまでの通信はhttpとなる。(httpsでも可能であるが、httpの方が負荷が軽いため)</u><br>
<br>
<u>httpを使用するメリットとして、Webサーバで受けるアクセスがhttpとなるので負荷が減るためである。(暗号化された通信を複合するために、SSLの接続を受けるのは負荷が掛かる)</u><br>
<u>httpを使用するメリットとして、Webサーバで受けるアクセスがhttpとなるので負荷が減るためである。(暗号化された通信を複合するために、SSLの接続を受けるのは負荷が掛かる)</u><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>
<u>クライアントPCがWindowsの場合、Windows PCにインポートするには、サーバ証明書のファイル(.crt拡張子)をpkcs12形式に変換する必要がある。</u><br>
openssl pkcs12 -export -inkey <秘密鍵のファイル名>.key -in <サーバ証明書のファイル名>.crt \
                        -out <クライアント側にインポートするサーバ証明書のファイル名>.p12 -name <任意の識別子名>
<br>
秘密鍵のファイルのアクセス権限を変更する。<br>
chmod 400 <秘密鍵のファイル名>.key
<br>
CSRファイルは、サーバ証明書を発行するためのファイルであるため、削除してもよい。<br>
<br>
<u>サーバに設置するものは、サーバ証明書のファイル(.crt拡張子)と秘密鍵(.key拡張子)の2つである。</u><br>
<u>Windows PCへ配布するものは、pkcs12形式に変換したクライアント側のサーバ証明書のファイル(.p12拡張子)である。</u><br>
<br>
Windows PCへクライアント側のサーバ証明書のファイル(.p12拡張子)をインポートする場合、ファイルを実行することによりインポート画面が起動するため、<br>
インポート画面に沿って、サーバ証明書のファイル(.p12拡張子)をインポートする。<br>
<br><br>
<br><br>


案内メニュー