SSL証明書を購入して、Apacheを使っている公開サーバーへ導入しました。
証明書はFUJISSLから購入して導入します。

秘密鍵の作成

ファイル名は何でもOKですが、わかりやすいようにドメイン名と導入年月を入れました。
パスワードの入力があるので任意のパスワードを設定します。

$ sudo openssl genrsa -des3 -out maple-rice.com.key 2048
 Generating RSA private key, 2048 bit long modulus
 ........................................................+++
 .......................................................................................................................................................................................+++
 e is 65537 (0x10001)
 Enter pass phrase for maple-rice.com.key:
 Verifying - Enter pass phrase for maple-rice.com.key:

CSRの作成

先ほど作った秘密鍵からCSRを生成します。(これをSSL証明書を購入するときに提出します)

$ sudo openssl req -new -key maple-rice.com.key -out maple-rice.com.csr
 Enter pass phrase for maple-rice.com.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) [AU]:JP
 都道府県名:
 State or Province Name (full name) [Some-State]:Tokyo
 都市名:○○-cityとか入れます
 Locality Name (eg, city) []:Tachikawa-city
 組織名:
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Maple Rice Corp.
 部署名:無しなら空白でもOK。ここではハイフンにしました。
 Organizational Unit Name (eg, section) []:-
 サーバーのFQDN:
 Common Name (e.g. server FQDN or YOUR name) []:www.maple-rice.com
 メールアドレス:入力しなくてOK
 Email Address []:
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 パスワード:入力しなくてOK
 A challenge password []:
 追加組織名?:入力しなくてOK
 An optional company name []:

証明書を購入する(意外と簡単に購入できました)

今回は FujiSSL から購入します。購入するタイプは「ファイル認証」と「メール認証」があり、発行が早そうなので「メール認証」タイプで購入しました。
「メール認証」タイプは認証用のメールが登録するドメインに応じたメールアドレスに送られてくるため、そのメールを受け取れる様にメールサーバーを立ち上げて設定しておく必要があります。(メールサーバーの設定方法は割愛)
証明書はFUJISSLストアフロントから購入します。購入の流れについては説明ページがあるので、それを見ながら行えば特に面倒な部分はありませんでした。

Step1

ここは同意のチェックを入れるだけ。

Step2

上で作成したCSRのテキストをコピーして貼り付けます。

Step3

証明書情報が表示されるので確認します。また、このページで入力するメールアドレスは管理者用(証明書などが送付されてくる)なので、「メール認証」の時に使用するメールでなくてOK。
ページ最後の認証方式では「メール認証」を選択し、受信できるメールアドレスを指定します。

Step4

申請内容を再確認して、決済方法を指定し決済します。

申請が完了すれば、申請担当者で入力したメールアドレスに申し込み受付完了を通知するメールが届き、「メール認証」で選択したメールアドレスに「認証ページ」のURLが通知されます。

認証ページのURLにアクセスし、内容を確認して「認証する」を選択すると認証手続きが完了となり、その後、審査の後、証明書が発行されます。

 

発行される証明書(証明書、中間証明書)は管理者宛てメールに添付されて送られてきます。
(Webでの認証手続きから証明書発行のメールが送られてくるまで10分はかからなかったと思います。)
メールで送られてくるのは証明書と中間証明書と2つあり、これらをサーバーにインストールします。

証明書をサーバーにインストール

メールで送られてきた証明書(“www.maple-rice.com.crt”) と 中間証明書(“ca-bundle.ca”)をサーバーににコピーします。

ここで一旦、各証明書のパーミッションを変更しておきます。
$ sudo chmod 400 maple-rice.com.key
$ sudo chmod 400 maple-rice.com.csr
$ sudo chmod 400 www.maple-rice.com.crt
$ sudo chmod 400 ca-bundle.ca
$ sudo chown root:root www.maple-rice.com.crt
$ sudo chown root:root ca-bundle.ca

Apacheに証明書ファイルを配置します

関連する項目は
SSLCertificateFile:SSLサーバ証明書(今回購入した証明書"www.maple-rice.com.crt";)
SSLCertificateKeyFile:秘密鍵(最初に作った秘密鍵"maple-rice.com.201711.key")
SSLCertificateChainFile:中間証明書(購入時に提供された中間証明書"ca-bundle.ca")

 Apacheの設定を更新

$ sudo vi /etc/apache2/sites-available/default-ssl.conf
------------------------------------------------------
 SSLCertificateFile    /(証明書のパス)/www.maple-rice.com.crt
 SSLCertificateKeyFile /(証明書のパス)/maple-rice.com.key
 SSLCertificateChainFile /(証明書のパス)/ca-bundle.ca
------------------------------------------------------

Apacheを再起動します。
再起動時にパスワードの入力が要求されるので、秘密鍵を作成した時のパスワードを入力します。

$ sudo /etc/init.d/apache2 restart
[....] Restarting apache2 (via systemctl): apache2.serviceEnter passphrase for SSL/TLS keys for www.maple-rice.com:443 (RSA): ************

これで、外部からアクセスするとブラウザの証明書表記部分が正常に表示されます。

このままだと、サーバー再起動時にパスワードが入力できないので、パスワード自動応答のスクリプトを作成して自動実行するようにします。

$ sudo vi /(証明書のパス)/ssl_pass.sh
------------------------------------------------------
#!/bin/sh
echo "秘密鍵のパスワード"
------------------------------------------------------
$ sudo chmod 500 /(証明書のパス)/ssl_pass.sh

設定ファイルを修正

$ sudo vi /etc/apache2/mods-available/ssl.conf
------------------------------------------------------
 #SSLPassPhraseDialog  exec:/usr/share/apache2/ask-for-passphrase
 ↓
 SSLPassPhraseDialog  exec:/(証明書のパス)/ssl_pass.sh
-----------------------------------------------------

Apacheを再起動して、パスワード入力無しで起動すればOK

$ sudo /etc/init.d/apache2 stop
[ ok ] Stopping apache2 (via systemctl): apache2.service.
$ sudo /etc/init.d/apache2 start
[ ok ] Starting apache2 (via systemctl): apache2.service.

サイトシールを表示させる

サイトシールの表示の仕方は証明書が送られてくるメールにURLが記載されていました。
サイトシールの設定
このページを開いて、申請時のコモンネームを入力すると、そのリンクが表示されるので、コピーしてwebページに張り付けます。

↑こんな感じになります。