【Linux】シェルでの日付の書式

PHPとMySQLでは日付の書式はかなり似ています。

PHPとMySQLの日付の書式の違い

Linuxのシェルでの書式も多くは似ていますが、
よく使うと思われる「分」や「秒」が違っているので注意が必要です。

たとえばログファイル名に日時を入れたい場合は

【Linux】CentOS5でLet’s Encryptを使ってマルチドメインのSSL証明書を発行する

CentOS5でシステムを運用しています。2010年にリリースしたシステムです。
新しいOSに乗り換えるべきなんですが、いろいろと複雑な事情があり、もう少し延命しなければなりません。

このシステムのSSL証明書を、無料のLet’s Encryptで取得することになりました。
Let’s Encryptについての記事はこちら

SSL証明書は無料で取得できる時代に

また、同じサーバー上で、
本番環境の「www.ドメイン名」とステージング環境の「stage.ドメイン名」が動いており、
マルチドメイン証明書を取得することにしました。

しかし、OSが古いことが原因で、途中さまざまな壁にあたり、都度、対処が必要でした。

以下、備忘録です。

まず、Let’s Encryptを利用するために公式の「certbot」というツールがあるのですが、
これがCentOS6以降でないと使えません。
いきなりの壁です。

しかし、CentOS5でも使える「dehydrated」という非公式のツールがありますので
こちらを使ってSSL証明書を取得することにします。

dehydratedはgitでインストールしますが、
CentOS5では標準でgitはありません。
そこでgitのインストールから始めます。

CentOS5にgitをインストールするため、EPELリポジトリを追加します。

しかし、ここでまた問題が。
CentOS5は2017年3月31日でサポートが終了したため
公開していたミラーサイトからリポジトリが削除されています。

そこで、古いOSをyumリポジトリとして公開している

http://vault.centos.org/

というサイトがありますので
そこをyumリポジトリに追加してgitをインストールします。

を開きます。

という行がいくつかあります。
この行をコメントアウトし、代わりに次の行を追加します。

6箇所くらいあるので、それぞれ、上記の変更を行います。
私の環境はCentOS5.5ですので上記のディレクトリに「/5.5/」とありますが、
ここはバージョンによって適宜変更してください。

これでリポジトリが登録できたことになっているので、
yumでgitをインストールします。

gitがインストール出来たら、やっと目的のツール「dehydrated」のインストールです。

インストールできたら、さっそくdehydratedを使ってSSL証明書を取得してみます。

まず、一時ディレクトリを作成します。

次にApacheの設定ファイルを作成します。

dehydrated.confの内容は下記のとおりです。

ここまででApacheを再起動します。

次に、dehydratedの設定ファイルを作成します。
dehydratedをインストールした場所に移動し、

同じディレクトリにdomains.txtというファイルを作成します。

このファイルには、SSL証明書を発行するドメインを記述します。
このとき、行を分けて複数のドメインを記述すると
ドメインごとに証明書が発行されますが、
1行にスペース区切りで複数のドメインを記述すると
1つのマルチドメイン証明書として発行されます。

今回は目的だったマルチドメイン証明書の記述を行います。

最初に記述したドメインがコモンネームとなります。

そして、証明書発行の前に、アカウントを登録する必要があります。

Done!と表示されたら完了です。

いよいよ証明書の発行です。

Done!と表示されたら証明書の発行完了です。
準備が大変でしたが、あっけなく発行できました。

あとは、ApacheのVirtualHostの設定で
複数のドメインに対して証明書ファイルを設定します。

いろんな書き方があると思いますが
私はssl.confにすべて記述しています。

ssl.conf(一部)

Apacheを再起動して完了です。

あとは、自動更新の設定ですが、cronで以下のようなコマンドを実行するだけです。

これで証明書の更新も勝手にやってくれます。たまにログは確認しましょう。

これでCentOS5でもLet’s Encryptでマルチドメイン証明書が利用できました。
無料ってのがすごいですね。

【Linux】各種バージョンを調べる

調べ方も様々なのでつい忘れてしまいますよね。

CentOSのバージョン

Apacheのバージョン

MySQLのバージョン

PHPのバージョン