投稿日2015/01/31
sslの取得と設定について説明していきます。環境構築を何回かに分けて明記しています。OSはCentOSです。
ドメインがexample.comと仮定して作成しています。
whoisをインストールして調査します。
sudo yum install jwhois
whoisコマンドにドメイン名を与えます。
whois example.co.jp
example.comのために証明書を取得する場合、administrator@example.com
宛にメールが届き、そのメールから手続きが進みます。ユーザ名はadministrator, postmaster, webmasterなどから選べるようになっています。事前にメールが対象のアドレスに届くか確認しておきます。
Webサーバの秘密鍵を作成します。
まず、ディレクトリを作成し、移動します。
sudo mkdir -p /usr/local/etc/ssl/praivate
cd /usr/loca/etc/ssl/private
秘密鍵を作成します。
sudo openssl genrsa -out example.com.key -des3 2048
秘密鍵ファイルのパーミッションを変更します。
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を作成します。
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が作成されます。
認証局により異なりますが、サイトの指示に従い、証明書を発行すると設定したメールアドレスにメールが届きます。※サイトにて先ほどの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-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