たけぞうBLOG

iOS,XCode,Cameraなど

開発

SSL証明書を$9で購入し、Apacheサーバに設定してみました

投稿日:8月 31, 2014 更新日:

背景

個人でブログを始める場合、httpsを設定するのはSSL証明書の購入が効果だったりしてなかなか躊躇していまいますが、namecheapという格安でSSL証明書を購入できるサービスがあるとのことで実際にこのブログサイトで試してみました。

やること

  • 海外サイト(Namecheap)でSSL証明書を購入
  • 取得した証明書を設定
  • Apacheサーバに設定

海外サイトでSSL証明書を購入

今回はnamecheapというサイトでSSL証明書を購入してみました。
購入した商品は年額$9のPositiveSSLです。

namecheapにアクセス

blog.takezou.comというドメインをhttps対応するのが目的なので、単一ドメインのPositive SSLをこちらから購入します。

PositveSSLをAdd to Cartします。

\"namecheapの商品選択\"

次にConfirm Orderをクリックします。

\"namecheapの購入確認\"

 

初回の場合はアカウントを作成する必要があるので、右側のCreate An Accountに記入してください。

2回目以降の場合はLogin to Your Accountで前回作成したアカウント情報を使ってログインします。

\"namecheap\"

その後は支払い方法などを選択し、Positive SSLを購入完了してください。

次に、namecheapにログインします。

\"nc07\"

 

ログインが終わったら、アカウント名をクリックしてManage SSL Certificatesをクリックします。

\"nc08\"

 

先ほど購入したPositiveSSLの発行手続きを行います。

\"nc09\"

 

CSR生成

ここで、一旦ターミナルソフトを起動しCSRを作成します。

$openssl genrsa -des3 -out private.key 2048

パスフレーズが聞かれるので入力します。(忘れないように気をつけて下さい)

$openssl req -new -key private.key -out server.csr

ここではserver.csrというファイル名でCSRを作成します。

この情報をSSL証明書作成時のフォームに設定し、SSL証明書発行手続きを行います。

証明書の発行

無事に購入が完了すると、登録したメールアドレス宛に下記のようなメールが届きます。

このメールの添付ファイルに証明書が入っているので任意の場所にダウンロードしてzip解凍します。

\"namecheap購入完了後のmail\"

 

 

取得した証明書を設定

Apache設定用の中間証明書の作成

取得した証明書の中身は以下のようになっています。

  • AddTrustExternalCARoot.crt
  • \”ドメイン名\”.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSADomainValidationSecureServerCA.crt

このうち、\”ドメイン名\”.crt以外の3つのファイルを一つにまとめます。

[plain]

$cat COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt AddTrustExternalCARoot.crt > "ドメイン名".cer

[/plain]

秘密鍵からパスフレーズを取り除く

[plain]

$openssl rsa -in /path/to/private.key -out /path/to/privatekeynopass.key

[/plain]

Apacheサーバに設定

証明書をApacheサーバーに設置

上記で作成した\”ドメイン名\”.crtと\”ドメイン名\”.cerとprivatekeynopass.keyの3つのファイルをSSL設定したいサーバーにFTPやSCP等で転送してください。

ここではこれらのファイルを/etc/httpd/ssl配下に設置するとします。

(ファイルのパーミッションはapache実行ユーザにのみアクセスできるようにしておいてください)

Apacheの設定ファイルを編集

次にApacheの設定ファイルで、SSL証明書を設定したいVirtual Hostに下記のように記述します。

[plain]
<virtualhost *:443="">
ServerName blog.takezou.com
DocumentRoot /path/to/doumentroot/

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/"ドメイン名".crt
SSLCertificateKeyFile /etc/httpd/ssl/privatekeynopass.key
SSLCACertificateFile /etc/httpd/ssl/"ドメイン名".cer

以下は通常のvirtualHost設定どおり

[/plain]

最後にChromeなどのWebブラウザを使ってサイトにアクセスします。
正しく設定されている場合は下記のように鍵マークが表示されるはずです。

\"nc10\"

 

-開発

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Xcode7.1+XVimでカーソルが表示されない場合の対応方法

普段Xcodeでコードを書くときはXVimプラグインを使っているのですが、Xcode7.1にアップデートしてからplaygroundの場合のみカーソルが表示されなくなってしまいました。
visual studio code

Visual Studio Code for Macをコマンドラインから起動する方法

Visual Studio Code for Macを使う際、terminalからcodeというコマンドで起動できるようにするための設定方法です。 Visual Studio Codeを開きます ⌘+ …

iOS8でCoreLocationを使用する際の注意点

iOS8でiBeaconのサンプルコードを書いていたのですが、何故かプライバシー設定のダイアログが表示されず悩んでいたのですが、原因は以下のキーをInfo.plistに追加していなかったからでした。 …

SwiftのiOSプロジェクトにGoogle Analytics Services SDKを設定する方法

現時点(2014/09/16)でGoogle Analytics Services SDKのSwift版はリリースされていませんが、これから説明する手順で動作確認できたので共有します。

nginx用のLet’sEncrypt証明書をwebrootで自動更新する方法

Let’s Encryptの証明書を自動更新する cronの設定 /etc/cron.monthly/letsencryptを編集する #!/bin/sh /opt/letsencrypt …

プロフィール


1972年神奈川県生まれ。ソフトウェアエンジニアとして生きています。最近はクライアントアプリからサーバーサイドまで幅広くやってます。