debian」タグアーカイブ

Let’s Encryptの本格運用

Let’s Encryptのベータが始まった時にも投稿したのだけれど、証明書の有効期限が迫ってきたので、本格運用に移らないといけない。
ベータの時から情報も増えて手探り感はなくなりました。新規に始める人は公式サイトを見るのが良いかと思います。
今回はベータからの上書きになるので心配でしたがそこら辺もサポートされているようです。

クライアントのインストール

公式通り

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help

ただし、今回からcronで自動更新させるつもりなので、rootで行うようにしました。また、letsencrypのディレクトリもユーザホームではなく、/usr/localでやり直しました。

手動での証明書インストール

案の定というか、DebianでApacheを使っている時の動作がおかしかったようで、公式でもDebianだけやり方が違う旨の記述がありました。

./letsencrypt-auto --apache

これでインタラクティブに質問に答えていくと、証明書の発行からインストール、apacheのreloadまでやってくれました。
ベータの証明書が入っていたけど、そのへんもうまい具合に解決してくれました。

証明書の自動更新

証明書の有効期限は90日なので、毎回上のコマンドを叩いてもいいのですが、crontabに対話式でないコマンドを書いておくと自動更新してくれます。

40 23 02 * * /usr/local/letsencrypt/letsencrypt-auto certonly --webroot -w /var/www -d beth.mirahouse.jp --renew-by-default && /usr/sbin/service apache2 reload

ここでハマったんですが、http(80)のDocumentRootとhttps(443)のDocumentRootが違うと、認証に失敗します。DocumentRootに.well-knownというディレクトリを作って、認証の鍵を置くんですが、これの確認にhttpを使うみたいで、httpsのDocumentRootを指定しておくと見に行ってくれないようです。逆にhttpのDocumentRootを書いてもダメでした。
いまいち納得いきませんが、httpとhttpsのDocumentRootを一致させることで解決しましたが、なんとかならないものでしょうか。

apt-transport-https

覚え書き

Dockerをインストールするために、https://docs.docker.com/engine/installation/debian/ このページを参考にして /etc/apt/source.list.d/docker.listに

deb https://apt.dockerproject.org/repo debian-jessie main

を追加してアップデートかけたら

E: The method driver /usr/lib/apt/methods/https could not be found.

というエラー。どうやらaptコマンドはhttpsに対応していないようです。
これを解決するには、タイトルのapt-transport-httpsをインストールすればいいようです。

debian 7 (wheezy) に jq をインストール

自分用覚え書き

Debian wheezy にJSONとか整形するjqをインストールしようと思ったのにパッケージで提供されていない。安定版には含まれないようなので、レポジトリを追加しました。
/etc/apt/source.listに以下を追加しました

deb http://ftp.jp.debian.org/debian wheezy-backports main contrib non-free

あとはいつもどおり、updateして、インストールです。

debianでexim4の設定

debianはインストール直後はexim4が動いていて、localhost内のメールだけ読み書きできるようになっています。外部から受け取る必要がなくても、内部のサービスや、各種ログなどを外に送りたいことは有ります。自前のMTAはいらないので外部のMTAにまかせてメールを送る設定をしてみたいと思います。今回はGoogle Appsにメールを送る方法を備忘録として残しておきます。

exim4の再設定

rootでdpkg-reconfigure exim4-configを実行します。以下のように設定しました。

General type of mail configuration: mail sent by smarthost; received via SMTP or fetchmail
System mail name:サーバのFQDN
IP-addresses to listen on for incoming SMTP connections:127.0.0.1 ; ::1
Other destinations for which mail is accepted:サーバのFQDN
Machines to relay mail for:(blank)
IP address or host name of the outgoing smarthost:smtp.gmail.com::587
Hide local mail name in outgoing mail? <Yes>
Visible domain name for local users:サーバのFQDN
Keep number of DNS-queries minimal (Dial-on-Demand)? <No>
Delivery method for local mail:mbox format in /var/mail/
Split configuration into small files? <No>

転送先アカウントの設定

今回はGoogle Appsのアカウントを使っているので、Google Account のユーザ名とパスワードを設定します。2段階認証を使っている場合は事前にアプリケーション固有のパスワードを取得しておきます。/etc/exim4/passwd.clientに以下を記述。

*.google.com:(メールアドレス):(パスワード)

2019年9月頃にGoogleの仕様が変わりました。以下が正解です。

smtp.gmail.com:(メールアドレス):(パスワード)

このファイルはパスワードが含まれるので、owner rootでgroup Debian-exim、パーミッションは640です。

また内部のメール転送のために/etc/email-addressesも設定しておきます。

設定の反映

update-exim4.confを実行して終わりです。