Apache
SSL
HTTPS

さくらインターネットRapidSSL申込みからApache設定まで

More than 1 year has passed since last update.

概要

試しに clock-up.jp への SSL 設定を行ってみた。

流れ

ざっくり以下のような流れ。

  1. 秘密鍵作成 … 自分のサーバで行う
  2. CSR作成 … 自分のサーバで行う。ここに署名情報を含める。
  3. 中間CA証明書取得 … 認証局サイトから取得
  4. サーバ証明書取得 … プロバイダを介して認証局から取得
    • 認証局に(2)のCSRを送る必要がある
  5. 秘密鍵・中間CA証明書・サーバ証明書をApacheに設定

手元のモジュール確認

$ rpm -q httpd
httpd-2.2.15-47.el6.centos.x86_64

$ rpm -q mod_ssl
mod_ssl-2.2.15-47.el6.centos.x86_64

$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

モジュールが無ければ yum 等でインストール。

# yum -y install httpd
# yum -y install mod_ssl
# yum -y install openssl

秘密鍵生成

# cd /etc/httpd/conf
# mkdir ssl.key
# chmod 700 ssl.key
# cd ssl.key
# openssl genrsa -des3 -out ./ssl.key/clock-up.jp_201511.key 2048
…
Enter pass phrase for clock-up.jp.key:
Verifying - Enter pass phrase for clock-up.jp.key:

# ls -l ssl.key
-rw-r--r-- 1 root root 1743 Nov 15 02:13 clock-up.jp_201511.key

あとあとパスフレーズ入力するのがめんどくさくなってきたら以下コマンドでパスフレーズを外しておく。

# openssl rsa -in ./ssl.key/clock-up.jp_201511.key -out ./ssl.key/clock-up.jp_201511.key

CSR生成

# mkdir ssl.csr
# chmod 700 ssl.csr
# openssl req -new -key ./ssl.key/clock-up.jp_201511.key -out ./ssl.csr/clock-up.jp_201511.csr
Enter pass phrase for ./ssl.key/clock-up.jp_201511.key: ← 入力
…
Country Name (2 letter code) [XX]:JP ← 入力
State or Province Name (full name) []:Tokyo ← 入力
Locality Name (eg, city) [Default City]:Shinjuku-ku ← 入力
Organization Name (eg, company) [Default Company Ltd]:clock-up.jp ← 入力
Organizational Unit Name (eg, section) []: ← 空
Common Name (eg, your name or your server's hostname) []:clock-up.jp ← 入力
Email Address []:kobake@users.sourceforge.net ← 入力

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ← 空
An optional company name []: ← 空

# ls -l ssl.csr/
-rw-r--r-- 1 root root 1054 Nov 15 03:17 clock-up.jp_201511.csr

# cat ssl.csr/clock-up.jp_201511.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIC0jCCAboCAQAwgYwxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVUb2t5bzEUMBIG
…
Pv+6Tt+0
-----END CERTIFICATE REQUEST-----

CSR内容確認

# openssl req -text -noout -in ssl.csr/clock-up.jp_201511.csr 
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JP, ST=Tokyo, L=Shinjuku-ku, O=clock-up.jp, CN=clock-up.jp/emailAddress=kobake@users.sourceforge.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
…

さくらインターネットにてSSL申込 (CSR登録)

1.png

2.png

3.png

4.png

5.png

6.png

clock-up.jp_201511.csr の内容をまるまるコピペ。

7.png

表示される内容にうち、特にコモンネームが間違ってないことを確認

8.png

9.png

とりあえずこれで申込み完了。しばらくするとさくらインターネットからのメールが来る。

CSR登録後に来るメール:認証ファイルの発行

申込みから2分くらいで来るメール。
auth1.png

申込みから10分くらいで来るメール。
auth2.png

会員メニューから認証ファイル (htmファイル) が入手できるようになっている。
auth3.png

入手した認証ファイル (htmファイル) を
http://clock-up.jp/*.htm としてアップロードする。
しばらくすると自動で認証局のボット的なものからこのファイルへのアクセスがあり、問題なければサーバ証明書が送られてくる。この時点で認証ファイルはもう不要なので削除してOK。

認証後に来るメール:サーバ証明書の発行

認証ファイルを設置してから15分くらいで来た。
cert1.png

会員メニューからサーバ証明書 (certファイル) を入手できるようになっている。
cert2.png

サーバ証明書 (certファイル) の中身はこんな感じ。
cert3.png

これの内容をまるまるコピーして
/etc/httpd/conf/ssl.crt/server.crt
として保存。

RapidSSL中間CA証明書を取得

https://www.geotrust.co.jp/resources/rapidssl/repository/intermediate_sha2.html

inca.png

赤枠内をまるまるコピーして、
/etc/httpd/conf/ssl.crt/inca.crt
として保存。

この時点で揃ったファイル

  • /etc/httpd/conf/ssl.key/clock-up.jp_201511.key … 秘密鍵(自分で作った)
  • /etc/httpd/conf/ssl.csr/clock-up.jp_201511.csr … CSR(自分で作った)
  • /etc/httpd/conf/ssl.crt/inca.crt … 中間CA証明書(RapidSSLサイトから取得)
  • /etc/httpd/conf/ssl.crt/server.crt … サーバ証明書(さくらインターネット管理画面から取得)

Apache設定

/etc/httpd/conf.d/ssl.conf を編集

LoadModule ssl_module modules/mod_ssl.so
Listen 443
NameVirtualHost *:443

SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed connect file:/dev/random  512
#SSLRandomSeed connect file:/dev/urandom 512
SSLCryptoDevice builtin
#SSLCryptoDevice ubsec

<VirtualHost *:443>
  DocumentRoot "/home/www/www.clock-up.jp/public_html"
  ServerName clock-up.jp:443

  SSLEngine on
  SSLCertificateKeyFile   /etc/httpd/conf/ssl.key/clock-up.jp_201511.key
  SSLCertificateChainFile /etc/httpd/conf/ssl.crt/inca.crt
  SSLCertificateFile      /etc/httpd/conf/ssl.crt/server.crt

  <Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
  </Files>

  <Directory "/home/www/www.clock-up.jp/public_html">
    SSLOptions +StdEnvVars
  </Directory>
</VirtualHost>

Apache再起動

# service httpd restart

これにて完。