GentooとNginxでLet's Encryptを使う

Let's Encrypt がPublic Betaになったので使ってみました。 Gentooに関してはまだ実験的なサポートで、Nginxはこれからプラグインが取り込まれる予定みたいです。 (なので他の組み合わせて使うより多少不便なのかもしれない) ただ試してみた結果現状でもとても簡単に利用できました。

基本的には ドキュメントInstallationHow to run the client の章を読めば事足りて、 あとは必要に応じて User Guide も読むといいはず。

まず必要なファイルはgithubからcloneするだけ、コマンドを実行したタイミングでディストリビュージョンごとに必要なパッケージが自動でインストールされるようになっていました。 Gentooの場合は bootstrap/_gentoo_common.sh に書かれていて以下のパッケージがインストールされるようになっていました。 あと普通に実行するとGentooは実験的なサポートなので --debug をつけて実行するように言われるのでそのようにします。 ただこれは初回のパッケージのインストール時のみ必要みたいなので、次回以降はつける必要がありませんでした。

PACKAGES="dev-vcs/git
  dev-lang/python:2.7
  dev-python/virtualenv
  dev-util/dialog
  app-admin/augeas
  dev-libs ...
more ...

Redmineをインストールしてみた

Googleカレンダーに予定を入れるようにしていたんだけれど、カレンダーなので日付を入れなくてはいけなくて
日にちが決まってないけれどやろうと思っていることを入れておくことができないのでちょっと不便でした
Redmine等のプロジェクト管理ソフトを入れるのは大袈裟な気がしていたんだけれどRedmineは以前仕事でも使っていたし
自分のサーバにインストールして使うとなると思いの外選択肢が少ない感じだったのでRedmineを入れてみました

もやっとした要件は

  • サービスでなく、自分のサーバにインストールできること
  • 依存するものが少なく、導入が楽
  • 日付を入れずにタスクを登録できる
  • 優先度を設定できる
  • 日付が入っているものはカレンダーで確認できる
  • スマホからタスクを確認、編集できる

なんとなく導入が面倒というイメージを持っていたんだけれど、手順を見る限り簡単そうでした
ただ、少しハマった部分もあるのでそれは後述 (最新は3.0.1なんだけれどドキュメントが2.xのまま更新されていなかったりする
あとスマホでのタスクの確認はRedmineではできなくて、 RedminePM というアプリから行うことにしました

今回RedmineをインストールするOSにはRubyが入っていないのでRedmine用のユーザを用意して
ホームディレクトリにrbenvをインストール、rbenvを使ってRubyをインストール、Redmineをインストール
と、全て専用ユーザのホームディレクトリ以下で済ますことにしました
また、追加でインストールするものも抑えたかったのでRedmineはWEBRick、SQLite、ImageMagickなし、で動かすことにしました

まずユーザを作って、ログイン

# useradd -m redmine
# su - redmine

rbenvruby-build をインストールする
ここからは全てこのユーザのホームディレクトリ以下で作業

more ...

Nginxで自己署名証明書を使う

ドメインを取ったのでそのうちきちんとした証明書を使おうかとは思っていますが
とりあえずしばらくはオレオレ証明書で運用しようと思っています
ということで作成の仕方をメモ

  1. パスフレーズなしの秘密鍵を作成
    色々なサイトを見ていると一度パスフレーズありで作成してから
    パスフレーズを削除したファイルを作りなおすような手順を踏んでいたりしますがこれでよさそう

    # openssl genrsa -out server.key 2048
    Generating RSA private key, 2048 bit long modulus
    ................................................+++
    ........................................+++
    e is 65537 (0x10001)
    
  2. 公開鍵の作成
    HTTPSで暗号化されていればいいだけなので Common Name 以外は適当でいいです
    . を入力した場合そのフィールドは空になるみたいなので全て空にしました

    # openssl req -new -key server.key -out server.csr
    You are about to be asked to enter information that will ...
more ...