crocodile notebook

feedly feedburner google+ twitter facebook creative commons BY:2.1 プロフィール


31880330742_959f12b0e6_b

個人であっても独自ドメインでブログなどを運用するのであれば、常時SSL化は必須の時代になっています。
その際にとても助かるのが無料SSLの『Let’s Encrypt』
SSL申請に際しては公式ツールが用意されていますが、古い環境では利用が難しかったり、WEBを一時停止させないと認証がうまくできなかったりと、簡単だけどちょっとめんどくさい部分もあるツールかもしれません。

acme.shはすべてコマンド入力で処理する必要があるので一見すると難しそうですが、実際に必要なコマンドは最少で2つとすごく簡単です。
acme.shは『Webrootモード』『Standaloneモード』『Apacheモード』『DNSモード』の4パターンでSSLの導入が可能ですが、今回はもっとも基本になる『Webrootモード』でLet’s EncryptのSSL申請を行う方法です。

必要なのはopensslなどが設定済みの動くWEBサーバーと、acme.shだけ。

acme.shのインストール

 
acme.shはgitで公開されているので、ソースを適当にダウンロードしてサーバにアップすればOKです。
サーバから直接ダウンロードする場合は、以下のような方法でacme.shをサーバーにダウンロードします。
もちろんgitでインストールも可能です。
curl https://get.acme.sh | sh
wget -O - https://get.acme.sh | sh
git clone https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install

必要なのはacme.shだけなので、任意のフォルダにコピーしてもOKです。

gitでインストールした場合、ご丁寧にcronの設定まで行われますが毎日の自動更新で設定されてしまうので、適切なサイクルで更新されるように調整してください。
0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null

これより以下は当ブログでの実例になります。
保存するpathやドメインは適宜置き換えてください。

SSLの申請

acme.shでのSSL導入は『SSLの申請』と『SSLの適用』の2ステップで行います。
Let’s Encrypt純正のツールではhttpサービスを停止した状態でなければ発行できないとお嘆きの方もいるようですが、acme.shは手順もより簡単で、httpサービスも停止する必要がありません。

./acme.sh --issue -d mag.torumade.nu -w /home/mag.torumade.nu/htdocs

–issue SSLの申請を行うオプション
-d 申請するドメイン名
-w 申請するドメインのdocument root

acme.shはdocument rootに(一瞬だけ)ファイルを生成して、申請しているドメインあてにhttpアクセスを行い、正しく所有者であるかを確認します。

Your cert is in /root/.acme.sh/mag.torumade.nu/mag.torumade.nu.cer
Your cert key is in /root/.acme.sh/mag.torumade.nu/mag.torumade.nu.key
The intermediate CA cert is in /root/.acme.sh/mag.torumade.nu/ca.cer
And the full chain certs is there: /root/.acme.sh/mag.torumade.nu/fullchain.cer

処理が完了すると上記のメッセージが表示されて /root/.acme.sh/mag.torumade.nu に以下の5ファイルが生成されます。

ca.cer
mag.torumade.nu.cer
mag.torumade.nu.csr
mag.torumade.nu.key
fullchain.cer

0バイトのファイルが生成される場合は失敗です。
–debug や –log のオプションを併用して原因を確認してください。
運用中のブログなどであればDNSの名前解決が失敗することは稀なので、おそらくドメイン名(-d)やdocument root(-w)の記述が間違えている可能性が高いです。

0バイト以上で生成されたファイルが正しく生成されているかを確認するには、opensslコマンドを利用します。
正しく生成されている場合、赤字のような応答があります。

openssl rsa -in mag.torumade.nu.key -check -noout
verify OK

openssl req -in mag.torumade.nu.csr -verify -noout
RSA key ok

openssl x509 -in mag.torumade.nu.csr -subject -noout
subject= /CN=mag.torumade.nu.csr

SSLの適用

Apacheやnginxで必要なファイル形式に整形して、任意のpathにコピーするコマンドです。
必要に応じてhttpサービスのリロードまでセットで処理可能です。

./acme.sh --installcert -d mag.torumade.nu \
--certpath /home/mag.torumade.nu/SSL/mag.torumade.nu.cer \
--keypath /home/mag.torumade.nu/SSL/mag.torumade.nu.key \
--fullchainpath /home/mag.torumade.nu/SSL/mag.torumade.nu.fullchain

/home/mag.torumade.nu/SSL はSSLファイルの保存先です。
Apacheやnginxのconfで設定するpathにあわせてください。

–certpath mag.torumade.nu.cerと同じ
–keypath mag.torumade.nu.keyと同じ
–fullchainpath mag.torumade.nu.cer + ca.cer

Apacheでは上記すべてのオプションを使います。
nginxはkeypathとfullchainpathのオプションを使います。

Apache / nginxのリロードまで自動で行う場合、 –reloadcmd “service apache force-reload” などのリロードコマンドをオプションとあわせて追記します。

初回の発行時は正常に生成できたことを確認したほうが良いので、自動リロードのオプションは更新の場合だけ利用するのが良いです。


旧バージョンhttpや非Python環境でもLet’s Encryptを利用可能にする『acme.sh』

UPDATE: 2017.01.24
, , , ,




併せ読みに選ばれている
記事はこちらのようです

無料のSSL発行機関『Let’s Encrypt』を利用してブログへのSSL通信対応が完了しました

無料のSSL発行機関『Let’s Encrypt』を利用してブログへのSSL通信対応が完了しました

2016年4月に正式サービスを開始した無償でSSL証明書を発行する機関『Let’s Encrypt』を利用して、当ブログもSSL対応しました。

iOS6ユーザ必携のWEBアプリ版Google Mapsが便利すぎてスゴすぎる!

iOS6ユーザ必携のWEBアプリ版Google Mapsが便利すぎてスゴすぎる!

iOS6の地図アプリがちょっとひどいから、Google Mapsを使えるWebアプリを作っちゃった方が! しかもこれ、並の地図アプリより便利だからものすごいです。

年額790円から、3ヶ月期限であれば無料まで。個人や個人事業主にオススメのドメイン認証SSL

年額790円から、3ヶ月期限であれば無料まで。個人や個人事業主にオススメのドメイン認証SSL

個人や個人事業主などの方でも導入しやすい安価なSSLのご紹介。3年契約で年額790円から、3ヶ月毎の更新手続きすれば無料で利用可能なSSLも。

.htaccessのRedirectRuleでURLクエリーを含めた301リダイレクトを設定する方法

.htaccessのRedirectRuleでURLクエリーを含めた301リダイレクトを設定する方法

.htaccessのRedirect RuleでURLクエリーを含めた場合のサンプルが少ないようなので参考になれば。

WordPressで投稿済み記事内の文字列をfunction.phpから置換する方法

WordPressで投稿済み記事内の文字列をfunction.phpから置換する方法

https化に際して、過去に投稿した記事に含まれるURLもhttpsへ置換されるphpを作成しました。https化に限らず、特定の文字列を置換する場合に利用いただけます。

2GBまで無料で使えるオンラインバックアップ『mozy』を使ってみました

2GBまで無料で使えるオンラインバックアップ『mozy』を使ってみました

少量のバックアップやオンラインストレージのバックアップに便利な『mozy』をご紹介。 使い方をうまく考えれば十分に実用的なサービスですよ。