【Ubuntu 16.04 LTS Server】ApacheでSSL通信(https)する(公式SSL証明書:CoreSSLを取得)

スポンサーリンク
728×90 ビッグバナー

前の記事では、Ubuntu ServerのサンプルSSL証明書を使ったApacheのSSL通信を試してみた。今度は実際の運用ができるように、公式のSSL証明書(CoreSSL)を取得し、正規にSSL通信できるようにしたので備忘録を残す。

以前の記事でApacheでWebサーバを構築したが、SSL通信(https)の機能を試してみる。ここ最近GoogleもSSL対応を推奨してい...

国内の格安SSL証明書

初めてSSL証明書を取得するので、日本語の説明で安い所を探していた。
SSLボックス(CoreSSL) が3年で790円/年で出ていたので、そこに決めた。対応ブラウザも一般的に使われているブラウザとスマホ携帯にも対応。

画像01

コモンネームの準備

今から証明書を発行して貰おうとするサイトのURL(FQDN)。ドメイン名は前記事で紹介したように「お名前.com」で取得。そのドメイン名に「www」をつけたものをコモンネームとする。wwwで申請するとwwwなしのURLも利用できると説明があった。

例) www.sample.com

前の記事で紹介したように、「お名前.com」で独自ドメイン名を取得した。私のインターネット環境は@niftyのフレッツ光接続で、固定IPアド...

承認用メールアドレスの準備

SSL証明書発行の際には、登録するドメインの管理者本人であると証明するために、メールによる承認手続きが必要。承認メールアドレスは、下記のどちらかに沿うものが必要。

  • ドメイン名のWOIS情報(登録者情報)に登録されているメールアドレス
  • ドメイン名を用いたメールアドレス(admin@ドメイン名 など)

運用予定のUbuntuサーバに postfix メールサービスを立ち上げ、ドメイン名のメールアドレスを受け取れるようにした。
このメールサーバの設定要領については、以下の記事で紹介。

Ubunt Serverを独自ドメインで運用しているが、SSLボックス(CoreSSL) の公式SSL証明書を発行して貰うには、ドメイン所有...

CSR(Certificate Signing Request)の作成

正規のSSL証明書を発行してもらうために、CSRを作成する必要がある。まずはサーバ上でopoensslコマンドを使って秘密鍵を作成する。
尚、作成手順はSSLBOXのヘルプ 参考1)と、参考2)の情報が参考になった。

1)秘密鍵の作成

Ubuntuサーバ上の、任意のフォルダ(私はホームディレクトリ)で下記コマンドを実行し、秘密鍵(wwwsamplecom.key)を作成。

$ openssl genrsa -out wwwsamplecom.key 2048
Generating RSA private key, 2048 bit long modulus
.........................................................................................+++
...................+++
e is 65537 (0x10001)

2)CSRの作成

作成した秘密鍵から、CSR(wwwsamplecom.csr)を生成。

$ openssl req -new -sha256 -key wwwsamplecom.key -out wwwsamplecom.csr
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]:Hiroshima
Locality Name (eg, city) []:Hiroshima
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Personal
Organizational Unit Name (eg, section) []:None
Common Name (e.g. server FQDN or YOUR name) []:www.sample.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

生成された、CSRファイルの内容を「SSL BOX」サイトでの申請に使う。
尚、秘密鍵のファイルはサーバにインストールして使い重要なファイルなので保管しておく。

SSL証明書の取得手続き

「SSL BOX」サイトから、トップ > サポート > サポートマニュアル > 新規取得お申し込み の説明に従い手続きをする。尚、予めネットウオルに会員登録し代金分のプリペイドを支払っておく必要がある。

ネットオウルにログインし、メンバー管理ツールの SSLボックス管理→新規取得→「その他のサーバで利用する」 から手続きをする。

画像02

下記の画面になるので、必要項目を入れて暗証番号を入力しプリペイドの支払いをして進める。

画像03

続いて、CSRを生成する情報などを入力

  • コモンネーム(FQDN): Ex. www.sample.com
  • 国: JP
  • 都道府県: Ex. Hiroshima
  • 市区町村: Ex. Hiroshima
  • 組織: Ex. Presonal
  • 部署: Ex. None

続いて、コモンネームと、生成したCSRを貼り付ける。

最後に、申請登録情報を入力。ここで、準備しておいた承認用メールアドレスを選択。

必要事項の記入を終えたら「次へ進む」をクリックして、取得申請完了!

承認用メールでの承認確認

しばらくすると、承認用メールアドレス宛てに承認確認メールが届く。そこに記載されているURLにアクセスして、メールに書かれてる“validation code”を入力して完了。
承認が終わると、SSL証明書がメールで送られてくる。

補足)

  • 申請時に、承認用アドレスは幾つかのフォームから選ぶ。もし間違って指定してしまった場合は、SSLボックスの管理画面から修正できる。実は、最初メールアドレスに「www」まで含めたアドレスを選択してしまってたようで、メールが来なくて確認したら間違っていた。訂正して再送ボタンを押すとすぐに確認メールが届き、無事に証明書を発行して貰えた。

SSL証明書と中間証明書の取得

ネットオウルにログインし、SSLボックスの「管理画面」から、SSL証明書と中間証明書がダウンロードできる。

画像04

ダウンロードしたファイルをそれぞれ、下記のような名前のファイルに保存し、Ubuntuサーバに転送。

  1. SSL証明書: wwwsamplecom.crt
  2. 中間証明書: coressl-intermedicate.crt

SSL証明書関連ファイルをサーバに設置

関連ファイルはホームディレクトリに置いてあるとして説明。

1)秘密鍵ファイルを /etc/ssl/private/ ディレクトリにコピー

$ cd /etc/ssl
$ sudo cp ~/wwwsamplecom.key .
$ sudo chown root:ssl-cert wwwsamplecom.key
$ sudo chmod 640 wwwsamplecom.key
$ sudo mv wwwsamplecom.key private/

2)取得したSSL証明書と中間証明書ファイルを /etc/ssl/certs/ ディレクトリにコピー

$ cd /etc/ssl
$ sudo cp ~/wwwsamplecom.crt certs/
$ sudo cp ~/coressl-intermedicate.crt certs/

Apacheの設定

Apacheのバーチャルホストの設定ファイルに、証明書関連のファイル名を記述。
Ubuntuにデフォルトでインストールされている default-ssl.conf ファイルを修正。

$ cd /etc/apache2/sites-available/
$ sudo nano default-ssl.conf

下記部分を修正

SSLCertificateFile  /etc/ssl/certs/wwwsamplecom.crt
SSLCertificateKeyFile   /etc/ssl/private/wwwsamplecom.key
SSLCertificateChainFile /etc/ssl/certs/coressl-intermedicate.crt

設定の確認後、SSLモジュールとバーチャルホストの有効化

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo apache2ctl configtest
$ sudo service apache2 restart

ルータの設定

443ポートが外部からアクセスできるように、ルータの静的マスカレードを設定。

Webブラウザで表示確認

https://www.sample.com/ で表示。

画像05

緑色の鍵マークが表示、やった〜〜!!

所感

作業を開始してから数時間でSSL証明書が取得でき、素直に表示できた。素晴らしい!!調べてみると、httpよりhttpsの方がデータ圧縮されてプロトコルが簡素化するので表示速度が早くなるの事。

個人サイトにSSLまで必要か?とも思ったが、実際使ってみると、体感できるほど表示レスポンスが向上した事、WordPressやGitLabなどの管理画面にログインする時のパスワードも暗号化されていると思うと安心して使える。それは閲覧する人にとっても安心感に繋がる。これで年間790円程度なら良いと思う。



次はWordPressやGitLabをSSL化していく。後日の記事で紹介。

前の記事でWordPressをインストールして運用していた。公式なSSL証明書(SSLボックス)を取得したので、本サイトのWordPress...

参照記事

参考

  1. CSRの作成手順 – SSL BOX
  2. 第387回 UbuntuでSSLを利用したサービスを構築する
  3. 初めてのSSL証明書作成(CoreSSL)と、Apacheに組み込んでSSLチェックツールで「A」とるまでのながれ
  4. なぜHTTPSはHTTPより速いのか
  5. ApacheでOpenSSLのセキュリティを強化する
スポンサーリンク
レシポンシブ広告
レシポンシブ広告

シェアする

フォローする