先日、苦しみながらもようやく入れることが出来た、アルファSSL。。ここにその痕跡を残しておきます。
CSRの準備
まず、アルファSSLを申し込む際に必要な、CSRを生成します。
必要な項目をあらかじめ抽出
その前に…のちのち絶対にわからなくなるので、先に命名規則を決めておきます。
今回は、http://www.example.comというサイトに、https://www.example.comのようにアルファSSL(サイトシール付)を導入する例を紹介します。
(各サーバーによって違いますが、わたしはこんなかんじでした。)
コモンネーム:www.example.com |
confディレクトリまでのパス:/etc/httpd/conf/ |
秘密鍵の保存ディレクトリ:/etc/httpd/conf/ssl.key/ |
秘密鍵のファイル名:www.example.com2014.key |
CSRの保存ディレクトリ:/etc/httpd/conf/ssl.csr/ |
CSRのファイル名:www.example.com2014.csr |
コモンネームのwww.example.comの部分は、アルファSSLを導入予定のサイトのアドレスです。
(例)ssl.example.com,example.com,sample.example.comなど。
ちなみにわたしは、www.example.comに設定する予定だったのに、コモンネームをexample.comで申し込んでしまい、再申し込みをしました><;
準備が整ったら、SSHにスーパーユーザーで入ります。
①Apacheのconfのパスに移動
# cd /etc/httpd/conf/
②秘密鍵の生成
秘密鍵を生成します。既存のファイルに上書きをしないように注意してください。
秘密鍵のファイル名、www.example.com2014.keyはなんでもOKです。いつの、何の秘密鍵なのかわかりやすいように年号までつけていますが、正直hogeでもいけます(絶対におすすめしませんw)。
秘密鍵の生成を行う際に、任意のパスワードを設定します。このパスワードは、今後もかなり使うので、メモっておいてください。
# openssl genrsa -des3 -out ./ssl.key/www.example.com2014.key 2048
③CSRの生成
先ほど生成した秘密鍵を元に、CSRを生成します。
./ssl.key/www.example.com2014.keyの部分は、先ほどの秘密鍵のファイル名です。
秘密鍵のファイル名と同様に、CSRのファイル名も、自分でわかればなんでもOKです。
ただ、のちのち困るので、最初に書いたように表にして持っておくのがベストです。
# openssl req -new -key ./ssl.key/www.example.com2014.key -out ./ssl.csr/www.example.com2014.csr
項目を入力
上記のコマンドを実行すると、項目を聞かれます。聞かれる項目は以下です。
例を記します。
Country Name:JP |
State or Province Name:Tokyo |
Locality Name:Shibuya-ku |
Organization Name:Kaishamei |
Organization Unit Name:Sales(指定がない場合はハイフン-) |
Common Name:www.example.com |
Email Addres:入力不要です。 |
A challenge password:入力不要です。 |
An optional company name:入力不要です。 |
⑤CSRをコピー
生成されたCSRを開き、コピー。申し込みフォームに貼り付けます。
# cat ./ssl.csr/www.example.com2014.csr
アルファSSL申し込み
申し込みフォームから、申し込みを行います。
記入例がこちらに載っていますので参考までに。
申し込みを済ませ、支払いが終わると、承認メールが届き、本人確認を行います。
「SSLサーバ証明書お申し込み確認」にて、承認するを選択してください。
その後、証明書がメールで送られてきます。
証明書のインストール
証明書をサーバーにインストールします。ふたたびここで、例の項目の洗い出しを行います。
コモンネーム:www.example.com |
confディレクトリまでのパス:/etc/httpd/conf/ |
SSL設定用confファイル:/etc/httpd/conf.d/ssl.conf |
証明書の保存ディレクトリ:/etc/httpd/conf/ssl.crt/ |
サーバ証明書ファイル名:www.example.com2014.crt |
中間証明書ファイル名:www.example.com2014.cer |
証明書を保存
まずは、メールで送られてきた証明書をサーバーに保存します。
以下のコマンドを打って、コピペするだけです。
貼り付ける際に、モレがないように注意してください(万が一あっても、編集できます)。
# vi /etc/httpd/conf/ssl.crt/www.example.com2014.crt
中間証明書を保存
つぎに、メールで送られてきた中間証明書をサーバーに保存します。
以下のコマンドを打って、コピペ。
# vi /etc/httpd/conf/ssl.crt/www.example.com2014.cer
以上で証明書のインストールが終了です。
ssl.confを設定
証明書をインストールしたら、SSLの設定を行います。
# vi /etc/httpd/conf.d/ssl.conf
ssl.confを編集します。一番最後の行に、以下を追加してください。
VirtualHostの、*部分には、サイトのIPアドレスを設定します。12.34.56.78なら、12.34.56.78:443とします。
DocumentRoot “/var/www/vhosts/example.com/httpdocs”
ここには、サイトが置かれている場所の絶対パスを書きます。
<VirtualHost *:443> DocumentRoot "/var/www/vhosts/example.com/httpdocs" ServerName www.example.com SSLEngine on SSLCertificateChainFile /etc/httpd/conf/ssl.crt/www.example.com2014.cer SSLCertificateFile /etc/httpd/conf/ssl.crt/www.example.com2014.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/www.example.com2014.key ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" AddHandler cgi-script .cgi <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars AllowOverride All Order allow,deny Allow from all </Directory> <Directory "/var/www/vhosts/example.com/httpdocs"> AllowOverride All </Directory> RewriteEngine On RewriteOptions inherit </VirtualHost>
Apacheの再起動
最後にApacheを再起動して設定終了です。
# /etc/rc.d/init.d/httpd restart
SSHもあまり触ったことがなかったので、アルファSSLの導入はかなり手間取りました。
今回学んだことは、実行したコマンドや入力した項目などは全てメモっておき、不具合が生じた場合にすぐに問題を見つけ、解決すること!です。
メモは重要。