Apatcheを使用したhttps通信のサーバ設定

投稿者: | 2016年5月13日

Apatcheを使用しているサーバをhttps通信ができるようにします。
SSLの証明書は自己署名(通称オレオレ証明書)を使用する前提です。
OpenSSLとmod_sslをインストールします。
通常、OpenSSLは最初から入っています。

$ yum install mod_ssl
$ yum install openssl

続いて証明書を配置するディレクトリを作ります。
証明書はhttpdの中に配置します。

$ cd /etc/httpd
$ mkdir ssl.key/
$ cd ssl.key

続いて証明書を申請するための秘密鍵を作ります。
途中パスワードが聞かれますので秘密鍵のパスワードを指定します。
完了すると「-out」オプションで指定した名前でファイルが作成されます。

$ openssl genrsa -des3 -out server.key 1024
  Enter pass phrase for server.key:{パスワード}
  Verifying - Enter pass phrase for server.key:{確認用パスワード}

秘密鍵に対して適切な権限を付与します。
$ chmod 400 server.key
続いて、秘密鍵からCSRファイル(公開鍵付きの申請書)を作成します。
国や都道府県等が聞かれますので設定できるものは設定します。
今回はオレオレ証明書なので空白でも問題はありません。

$ openssl req -new -key server.key -out server.csr
  Enter pass phrase for server.key:{上記で設定したパスワード}
  Country Name (2 letter code) [XX]:{国(日本ならJP)}
  State or Province Name (full name) []:{都道府県}
  Locality Name (eg, city) [Default City]:{市区町村}
  Organization Name (eg, company) [Default Company Ltd]:{団体名}
  Organizational Unit Name (eg, section) []:{部署}
  Common Name (eg, your name or your server's hostname) []:{ホスト名}
  Email Address []:{メールアドレス}
  A challenge password []:{空欄}
  An optional company name []::{空欄}

適切な権限を付与します。

$ chmod 400 server.csr

サーバ証明書の作成を行ないます。
「-days」オプションで有効期限を設定します。
単位は日なので36500は100年間有効という指定になります。

$ openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 36500
  Enter pass phrase for server.key:{上記で設定したパスワード}
[/bash light=1]
適切な権限を付与します。

$ chmod 400 server.crt
[/bash light=1]
続いてApacheに証明書を設定します。
「ssl.conf」に設定を記述していきます。
念のためファイルをコピーしてバックアップをとってから編集します。

$ cd /etc/httpd/conf.d/
$ cp -p ssl.conf ssl.conf_org
$ vi ssl.conf

「SSLCertificateFile」に証明書、「SSLCertificateKeyFile」に秘密鍵をそれぞれ指定します。

SSLCertificateFile /etc/httpd/ssl.key/server.crt
SSLCertificateKeyFile /etc/httpd/ssl.key/server.key

Apacheを再起動します。
パスワードが聞かれますので先ほど設定したパスワードを入力します。

$ /etc/init.d/httpd restart
  Enter pass phrase:{上記で設定したパスワードを入力}

これでhttpsで接続することが可能となります。
オレオレ証明書なのでChromeでアクセスすると当然このような画面になります。
アクセスするときは例外に加える必要があります。
AWSでは証明書はロードバランサーに組み込むケースが普通です。
今回はiphoneアプリからダウンロードするファイルの置き場が必要なため簡易的に作成しました。
次回以降のどこかでまたその話には触れるかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA