の取得と設定 - Ruby on Rails環境構築 08


sslの取得と設定について説明していきます。環境構築を何回かに分けて明記しています。OSはCentOSです。

ドメインがexample.comと仮定して作成しています。

ドメイン取得者の情報の取得

whoisをインストールして調査します。

sudo yum install jwhois

whoisコマンドにドメイン名を与えます。

whois example.co.jp
  • sslサーバー証明書の申請で仕様数情報は、原則としてWHOIS情報と一致させてください。

ドメインメールアドレスの確認

example.comのために証明書を取得する場合、[email protected]宛にメールが届き、そのメールから手続きが進みます。ユーザ名はadministrator, postmaster, webmasterなどから選べるようになっています。事前にメールが対象のアドレスに届くか確認しておきます。

秘密鍵の作成

Webサーバの秘密鍵を作成します。

まず、ディレクトリを作成し、移動します。

sudo mkdir -p /usr/local/etc/ssl/private
cd /usr/loca/etc/ssl/private

秘密鍵を作成します。

sudo openssl genrsa -out example.com.key -des3 2048
  • パスフレーズを2回求められるので入力してください。

秘密鍵ファイルのパーミッションを変更します。

sudo chmod 400 example.com.key

最後に秘密鍵からパスフレーズを削除します。Webサーバを自動起動するために必要な手順になります。

sudo mv example.com.key example.com.key.orig
sudo openssl rsa -in example.com.key.orig -out example.com.key

CSRの作成

申請に必要なCSRを作成します。

sudo openssl req -new -key example.com.key -out ../example.co.csr

サイト所有者の情報を対話的に入力していきます。

項目名 説明
Country Name 日本ならJP
State of Province Name 都道府県
Loclity Name 市区町村名
Organization Name whoisコマンドのOrganizationまたはRegistrant Name
Organization Unit Name 組織の部門名、省略可能
Common Name サーバのドメイン名

example.co.csrが作成されます。

SSL証明書の申し込み

認証局により異なりますが、サイトの指示に従い、証明書を発行すると設定したメールアドレスにメールが届きます。※サイトにて先ほどのCSRの内容を入力する部分が有ります。

メールにて送られてきたSSL証明書をコピーして任意のファイル名で保存します。example.com.pemとしておきます。

中間CA証明書のある場合、ca.pemとして保存しておきます。ca.pemには中間CA証明書→クロスノート証明書(ssl認証局によって異なる)を記載します。

証明書の設置

scpでサーバに先ほどのファイルをアップロードします。

scp example.com.pem ca.pem example.com:~

SSHでログインして、証明書を移動します。

ssh yourname@契約したIPアドレス
sudo mkdir -p /usr/local/etc/ssl/certs
sudo mv example.com.pem ca.pem /usr/local/etc/ssl/certs
sudo chown root:root /usr/local/etc/ssl/certs/*.pem

mod_sslをインストールします。

sudo yum install -y mod_ssl

非SSL用の設定ファイルをappnameをコピーします。

cd /etc/httpd/sites-available
sudo cp appname appname-ssl
  • appnameは適宜変更してください。

エディタでappname-sslを開き、1行目を修正します。

sudo vi appname-ssl
<VirtualHost 契約したIPアドレス:443>

2行目に下記を挿入して保存します。

SSLEngine on
SSLCertificateKeyFile    /usr/local/etc/ssl/private/example.com.key
SSLCertificateFile       /usr/local/etc/ssl/certs/example.com.pem
SSLCertificateChainfile  /usr/local/etc/ssl/certs/ca.pem

BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

シンボリックを設定します。

sudo ln -s /etc/httpd/sites-available/appname-ssl /etc/httpd/sites-enabled/002-appname-ssl

最後にApacheを再起動します。

sudo service httpd restart