2006-02-02 [長年日記]

証明書更新

今年も自宅サーバのSSLに使っている証明書の期限が切れる日がやってきました。というわけで更新。

# CAの証明書の作り直し
openssl x509 -req -signkey ca.key -days 365 -sha1 -in ca.req -out ca.crt

# サーバの証明書の作り直し
openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -sha1 -in server.req \
  -out server.crt -CAserial ca.srl -extensions v3_req -extfile server.cnf

# courier-imapの鍵を更新
cat server.key server.crt > /etc/courier/imapd.pem

# postfixの鍵を更新
cat server.key server.crt > /etc/postfix/postfix.pem

後は、courier-imap-sslとpostfixを再起動し、CAの証明書をクライアントにインストールします。

opensslのおさらいや、OpenSSLでsubjectAltNameを設定するなどを参考に。

svn infoとlibxslt

makefileの中などからsvn infoした結果を使いたい時には、出力をsedやawkなどで加工しているのですが、ロケールが変わるとうまく動かなくなることがあります。svn infoに出力をXMLにする--xmlオプションが追加されたのでこちらから取得すると良さそうです。XMLから特定の値を取り出すのにはlibxsltのxsltprocを使うことにして、以下のようなXSLTを作って、

<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:saxon="http://icl.com/saxon"
  version="1.0">
  <xsl:output method="text"/>
  <xsl:param name="path"/>
  <xsl:template match="/">
    <xsl:value-of select="saxon:evaluate($path)"/>
  </xsl:template>
</xsl:stylesheet>

以下のように実行してやると指定したXPathの値が簡単に取れます。

# 最後にコミットしたリビジョンの取得
svn info --xml | xsltproc --param path "'info/entry/commit/@revision'" xpath.xsl -

トップ «前の日記(2006-02-01) 最新 次の日記(2006-02-03)»