【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でマルチドメイン証明書が利用できました。
無料ってのがすごいですね。

【TCPDF】HTMLからのPDF出力で社印(角印)を会社情報にかぶせたい

PHPからPDF出力が簡単にできるTCPDFですが、
その中でもさらに、HTMLタグでPDFが作成できる機能は
WEBアプリの開発者にとっては
とても簡単に成形されたPDFが作成できるので便利です。

最近のバージョンではHTMLのタグだけではなく、
スタイルシートもある程度は反映してくれます。
ただ、さすがにブラウザとは違うので
すべてのHTMLやスタイルの表現が使えるわけではありません。

WEBでPDF出力がよく使われるもののひとつに
「領収証の出力」
がありますが、
このとき紙の領収証と同じように
会社情報に社印(角印)を少しかぶせて表示させたいですよね。

ブラウザ上ならスタイルでいろんなやり方がありますが、
TCPDFのHTML変換機能では使えないものが多いようです。
いろいろ試した結果、実現できた方法はtableタグのスタイル「padding-top」でした。

例:

【Skype、LINE】各PC版チャットツールで改行する方法

SkypeやLINEにはPC版があります。
そのどちらも、PC版ではエンターキーを押すとメッセージが送信されるため、
ツール内で改行を入れることができません。

しかし、仕事で客先と長めの文章をやりとりをする際には
見やすくするために改行が必要になります。
また、技術的なやりとりをする際にコードを記述する場合も
改行ができないとマズいケースがあります。

改行する方法は、それぞれ下記のとおりです。

【Skype】
メニューの「ツール」→「設定」→「チャット&SMS」→「チャット設定」で
「ENTERを押したときの操作」を「改行」に変更する

【LINE】
Shiftを押しながらENTERを押す
または、環境設定→「送信方法」を
Ctrl+EnterかAlter+Enterに変更する

【Windows10】コントロールパネルがメニューになくてもあわてない

Windows Updateにより、スタートメニューの右クリックメニューからコントロールパネルが消えたようです。

今まで:
情シス「ではまずスタートメニューを右クリックしてコントロールパネルを選択してください」

これから:
情シス「ではまずWindowsキーを押しながらRキーを押して、入力欄にcontrolと打ってEnterを押してください」

【JavaScript】scriptタグで呼ばれたjsファイル内で自身のURLを取得

scriptタグで呼ばれたjsファイル内で、
そのjs自身のURL(=scriptタグのsrcの内容)を取得したい場合、
普通にlocationオブジェクトを使って取得しようとしても
おおもとのページのURLしか取得できません。

document.currentScriptオブジェクトに対応していれば簡単ですが、
対応していない場合はその時点で呼ばれている最新のscriptタグを
解析すれば取得できます。