無料SSL証明書発行しセキュリティでA+を取る! 〜Apache編〜
概要
ベリトランスモジュールバージョンアップに際して
SHA256で発行したSSL証明書が必須となりました。
テスト環境でベリトランスモジュールバージョンアップ試験を行う際に
SSL証明書導入する必要が生じました。
本番環境と同じ有料SSLを導入するまでとはいかずとも
近しい状況を構築する必要があったので無料SSL証明書を発行し導入しました。
上記の手順をまとめましたので以下に記載します。
環境
AWS Marketplace: CentOS 6 (x86_64) - with Updates HVM を利用しています。
- CentOS release 6.7 (Final)
- Apache 2.4.12
手順
CSR生成
事前準備として、SSLインストール対象サーバで
CSRを生成しておきます。
SHA256 対応のCSR生成方法について以下ご参考ください。

StartComに登録
ヘッダーメニューの Sign-up クリック

必要事項登録し「send verification code」ボタンクリック
登録E-mail宛に verification codeが送付されます。

こんな感じのメールが来ます。

verfication codeを入力し登録完了

SSL発行手続き
無料版選択

SSLのWeb Server 用を選択

Domain Validation

SSLインストール対象サーバのドメイン入力

メール送信による認証

startSSL側で指定するメールアドレスで受信可能な状態にする必要があります。
ec2インスタンスのメール受信設定は以下記事が参考になりました。ありがとうございます。
上記記事中の注意点として
インスタンス作成直後にyum update
分にはいいですが
時にAWSでyum update
をするとkernel panicを起こすことがあります。
pythonをyumでなくソースから独自に入れ直したり、色々してたせいか…原因は追い切れていませんが、経年運用したインスタンスについては yum update は控えたいと思います。
うまく受信設定できない場合
/var/log/maillog を 常に tailしてログ確認。
受信可能なメールアドレスが既にあれば aliases で向け先変える。
postmaster@(domain) → root@(domain)メールボックスで Permission denied で
受信メールを保存できない場合は以下強引にメールディレクトリを変更する。
1 | /etc/postfix/main.cf |
SSL証明書 注文へ進む
メール受信による認証がクリア後、SSL証明書注文へ進みます。

認証情報作成

情報入力後、 (domain).zip がダウンロードされる。
※ 今回は WebServer が Apache なので ApacheServer を参照します。

解凍した zipファイルの ApacheServer 内の以下2ファイルを任意のディレクトリにアップしましょう。
- 1_root_bundle.crt
- 2_(domain).crt
今回アップ先ディレクトリは server.key 等のあるパス (/etc/httpd/conf/ssl.csr/) にします。
ssl.conf設定
SSL証明書のインストールとは
Apacheの設定ファイルとして指定ディレクティブで読み込ませる
ことです。
主な設定は以下です。
| Item | Value | Explain |
| ———————– | —————————————– |
| SSLCertificateChainFile | /etc/httpd/conf/ssl.csr/1_root_bundle.crt | 中間証明書 |
| SSLCertificateFile | /etc/httpd/conf/ssl.csr/2_(domain).crt | SSLサーバ証明書 |
| SSLCertificateKeyFile | /etc/httpd/conf/ssl.csr/server.key | SSLサーバ証明書とペアになる秘密鍵 |
以下URLで各WebServerとopensslバージョンにより最適な設定方法を示唆いただけます。
https://ssl-config.mozilla.org/
/etc/httpd/conf.d/ssl.conf
1 | LoadModule ssl_module modules/mod_ssl.so |
パフォーマンスチューニングを一切していません。
あくまで SSL証明書インストールを対象としていますのでご注意ください。
設定ファイルの構文確認
1 | // 構文チェック |
構文エラーが発生している場合は対象箇所が表示されますのでチェックし直してください。
但し、構文エラーがないからと言ってApache再読み込み時にエラーが発生しないとは限らないので
万が一の為、即元に戻せるようなコマンドを作っておくと良いでしょう。
例えば
ssl.conf を ssl.conf.bk にリネームして Apacheの設定ファイルとして見ないようにさせるなど。
Apache 設定ファイル再読み込み
1 | # service httpd reload |
ブラウザからアクセス
Chromeでアクセスしました。

- 認証の詳細な情報

セキュリティチェック
以下サイトで診断できます。
QUALYS SSL LABS
「A」が取れました!

ちなみに
常に https通信で問題ないサイトであれば以下のように設定すると
1 | <VirtualHost *:443> |
「A+」取得できました!

常時httpsはセキュアではありますがサイトの仕様次第なところもあるので状況によりけりです。
以上
無料SSL証明書発行しセキュリティでA+を取る! 〜Apache編〜
https://kenzo0107.github.io/2016/02/24/2016-02-25-get-a-plus-ssl-quality/