さくらVPSでApache+SSL環境の構築(CentOS6.5+Apache+RapidSSL)

  • 10
    Like
  • 0
    Comment
More than 1 year has passed since last update.

参考
さくらのVPSにRapidSSLを導入する
[さくらのSSL]nginxにRapidSSLの証明書をインストールした

概要

必要なもの 該当ふぃある 説明
秘密鍵 server.key
SSL証明書 server.crt
中間証明書 rapidssl-chain.crt

Apache,SSLインストール

Apacheインストール

yum install httpd

mod_sslのインストール

yum install mod_ssl

CSR作成

サーバ証明書を発行するためにCSR(署名要求)を作る。
CSRは秘密鍵から作る。

秘密鍵作成

# cd /etc/pki/tls/certs/
# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
...............................+++
.................................................
.................................................
................+++
e is 65537 (0x10001)
Enter pass phrase for server.key: (←パスフレーズを入力)
Verifying - Enter pass phrase for server.key: (←パスフレーズを再入力)

CSR作成

設定する項目のうちでドメイン名は合っている必要がある。
さくらVPSのデフォルトのドメインは使えないので、独自ドメインを取得する必要がある。

# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:(←秘密鍵のパスフレーズを入力)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
 -----
Country Name (2 letter code) [XX]:JP (←国名)
State or Province Name (full name) :Osaka (←都道府県)
Locality Name (eg, city) [Default City]:Osaka-shi (←市区町村)
Organization Name (eg, company) [Default Company Ltd]: example.info (←組織名)
※個人運営なのでドメイン名にしています(何でも良い)
Organizational Unit Name (eg, section) : (←部署名)
Common Name (eg, your name or your server's hostname) :www.example.info (←ドメイン名)
Email Address :webmaster@example.info (←メールアドレス)

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

CSRの内容を確認する。Subject: の行が合っていることと、Public-Key: の行が 2048 bitであることが確認する。

# openssl req -text -noout -in server.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JP, ST=Osaka, L=Osaka-shi, O=example.info, CN=www.example.info/emailAddress=webmaster@example.info
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    (略)
                Exponent: 65537 (0x10001)
        Attributes:
            (略)
    Signature Algorithm: sha1WithRSAEncryption
         (略)

SSL証明書と中間証明書の申請・購入とサーバへの設定

※以降は、さくらでラピッドSSLを購入する例です。

SSL証明書の購入

さくらのSSLからラピッドSSLを購入する。
購入する際にCSRの入力を求められるので、先ほど作成したserver.csrの中身をコピペする。

BEGIN行とEND行も貼り付けること。

 -----BEGIN CERTIFICATE-----
 (略)
 -----END CERTIFICATE-----

メールが届けば購入完了。

認証作業

認証ファイルをDLして、Webサーバへアップロードする。
1分おきに認証ファイルへリクエストがあるので、認証ファイルが返されることで認証が完了する。

認証ファイルDL

会員メニュー より、「契約情報」→「契約サービスの確認」で、「SSL ラピッドSSL」の「サーバ証明書」を開く。
「認証ファイルDL」をクリックして、認証ファイルをダウンロードする。

Webサーバへアップロード

Webサーバのルート(/var/www/html)へDLした認証ファイルをそのまま配置する。
1分置きにルートの認証ファイルへリクエストがあり、認証ファイルが返されることで認証が完了する。
リクエストはアクセスログで確認可能。

サーバ証明書ダウンロードして、サーバへ

先ほど「認証ファイルDL」だった箇所が「サーバ証明書DL」になっているのでDLする。

テキストでサーバ証明書開いて、サーバに張り付ける。

# vim /etc/pki/tls/certs/server.crt
 -----BEGIN CERTIFICATE-----
 (略)
 -----END CERTIFICATE-----

また、Apache再起動の度に確認が来るためパスフレーズ応答を削除する。

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (←秘密鍵のパスフレーズ入力)
writing RSA key

中間CA証明書の取得して、サーバへ

「ジオトラスト SSLサーバ証明書発行のお知らせ」というメールが届くので、中段の「ジオトラスト ラピッドSSL」を開く。

SHA-2であることを確認して、サーバに貼り付ける。

# vim /etc/pki/tls/certs/rapidssl-chain.crt
 -----BEGIN CERTIFICATE-----
 (略)
 -----END CERTIFICATE-----

設定変更/確認

Apache設定変更

# vim /etc/httpd/conf.d/ssl.conf
~以下を編集~
DocumentRoot "/var/www/html"
ServerName www.example.info:443(←自分の環境のドメイン名を書く)
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
SSLCertificateChainFile /etc/pki/tls/certs/rapidssl-chain.crt

Apache再起動

# service httpd configtest
Syntax OK
# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

確認

ブラウザでhttpsでアクセスして確認する。