Posted at

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

More than 3 years have 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でアクセスして確認する。