SSLサーバー証明書 Let’s Encrypt(無料)を設定する

会社のオフィシャルWEBサイトにはRapidSSLを導入していますが、ワイルドカードタイプは年間数万円かかるので、別サービスではお金の掛からない「Let’s Encryptサーバー証明書」を利用します。

リポジトリのクローン

$ git clone https://github.com/certbot/certbot

依存パッケージのインストール

$ cd certbot/
$ sudo ./certbot-auto

証明書の取得

$ sudo /certbot-auto certonly --webroot -w /var/www/sample(ドキュメントルート) -d sample.plane-plan.com -m hoge@plane-plan.com --agree-tos

WEBサーバーの設定を追記(ssl.conf等)


<VirtualHost *:443>
SSLEngine on
ServerName sample.plane-plan.com:443
DocumentRoot “/var/www/sample.plane-plan.com"
SSLCertificateFile /etc/letsencrypt/live/sample.plane-plan.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sample.plane-plan.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/sample.plane-plan.com/chain.pem
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
<Directory "/var/www/sample/“>
Options -Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>

httpのアクセスをhttpsへリダイレクト


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

サーバー設定のリロード

$ sudo service httpd reload

証明書の更新

署名書の有効間は90日間です。
「certbot-auto renew」で、有効期間30日未満の証明書が更新されます。

$ certbot-auto renew

実際に更新しようとした所、エラーが発生しましたがPythonのバージョンを2.7を入れることで更新できました。

virtualenv: コマンドが見つかりません

Python2.7で動作するシェルを起動します。

$ sudo scl enable python27 bash

CentOS 6 で発生するエラーの対処法
https://letsencrypt.jp/usage/centos6-error.html

Let’s Encrypt 総合ポータル
https://letsencrypt.jp/

※追記
複数ドメインを一括で更新時に問題がありました。
一旦Apacheを停止して更新できます。

Attempting to renew cert from /etc/letsencrypt/renewal/z-groove.com.conf produced an unexpected error: Could not bind TCP port 443 because it is already in use by another process on this system (such as a web server). Please stop the program in question and then try again.. Skipping.
# service httpd stop
# certbot-auto renew
# service httpd start

線を描くアニメーション

Canvasでサクッと描画できるのはいいけど、描画過程を見せたくて、線を引っ張る過程をアニメーションさせる方法を模索中。

Line Animation

始点のと終点の座標から、角度と線分の長さを割り出し、始点から終点に向かって、ちょっとづつ線を描いては消す…ってのを繰り返すってだけがが、そこそこ成功。

なお、描画にはタイマー関数ではなく、「requestAnimationFrame」を使ってます。

>>Canvasアニメーションの要点

OSXで写真ファイルのタイムスタンプ(作成日・更新日)を撮影日に合わせる

日常的にデジタルカメラで撮影した写真を管理していると、移動やコピー時にファイルの日付がズレてしまう場合があります。

また、LightRoom等でRAWを現像書き出したファイルも撮影日とは違う日付になってしまいます。
明確にイベント名で管理できない多くの写真データは撮影日ベースで管理したいところです。

そこで、「exiftool」を使ってタイムスタンプの変更を行ってみます。

homebrewでexiftoolをインストール

$ brew install exiftool

対象ファイルのタイムスタンプを撮影日に変更

$ exiftool "-DateTimeOriginal > FileModifyDate" *.{jpg,JPG}

ファイル名に撮影日に変更の場合

$ exiftool "-FileName < CreateDate" -d %Y-%m-%d_%H-%M-%S%%-c.%%e *.{jpg,JPG}

更に年月フォルダを追加して自動的に振り分けたい場合

$ exiftool "-FileName < CreateDate" -d %Y-%m/%Y-%m-%d_%H-%M-%S%%-c.%%e *.{jpg,JPG}

暫くはこれで良いかとおもいます。
元のファイル名も必要な場合はタイムスタンプを変更した上でAutomatorかbashにて対応です。

Monacaでリンクを外部ブラウザで開く

Monakaアプリからリンクを開く場合、「InAppBrowserプラグイン」を有効にしとかないと、外部ブラウザで開かんそうだ。

この辺の仕様もちょこちょこ変わるから、ちゃんと分かるようにしといてくれんかな。

>>monaca – monacaデバッガーでは正常に見えるのに実機にインストールすると外部リンクが正常に表示されない – スタック・オーバーフロー