<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://www.seirios.org/seirios/dokuwiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>ほほほのほ - tweet:2017</title>
        <description></description>
        <link>http://www.seirios.org/seirios/dokuwiki/</link>
        <lastBuildDate>Sat, 02 May 2026 00:36:54 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
            <title>ほほほのほ</title>
            <link>http://www.seirios.org/seirios/dokuwiki/</link>
        </image>
        <item>
            <title>FreeBSDのWeb ServerにLet&#039;s Encryptの証明書を突っ込む</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0131_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;freebsdのweb_serverにlet_s_encryptの証明書を突っ込む&quot;&gt;FreeBSDのWeb ServerにLet&amp;#039;s Encryptの証明書を突っ込む&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
かねてからの懸案だったLet&amp;#039;s Encrypt証明書対応のメモ。
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_round wrap_warning plugin_wrap&quot;&gt;
&lt;p&gt;
2017/02/01現在、まだFreeBSDでの動作確認をしていないので、この記事を鵜呑みにしても動かない可能性が高い。
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;FreeBSD\u306eWeb Server\u306bLet&amp;#039;s Encrypt\u306e\u8a3c\u660e\u66f8\u3092\u7a81\u3063\u8fbc\u3080&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;freebsd\u306eweb_server\u306blet_s_encrypt\u306e\u8a3c\u660e\u66f8\u3092\u7a81\u3063\u8fbc\u3080&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-330&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;let_s_encryptとは&quot;&gt;Let&amp;#039;s Encryptとは？&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Let&amp;#039;s Encryptは、公共の利益を図る目的で Internet Security Research Group (ISRG) が運営する、無料で利用できる自動化されていてオープンな認証局。
&lt;/p&gt;

&lt;p&gt;
その基本方針は
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 無料&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ドメインを保持する者が無料で信頼された証明書を取得可能&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 運用の自動化&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書の取得から更新まで自動化することが可能&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 安全&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 認証局サイド、管理者の両面から、最先端のプラットフォームを提供&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 透明性&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書の発行と失効が公式に記録され、一般公開され、誰でも監査できる&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; オープン&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 各手続き(プロトコル)を、オープン標準として公表&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 互助・協力&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; コミュニティの利益のための共同の取り組みであり、1つの組織によって統制されているものではない&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
以上、&lt;a href=&quot;https://letsencrypt.org/about/&quot; class=&quot;urlextern&quot; title=&quot;https://letsencrypt.org/about/&quot;&gt;About - Let&amp;#039;s Encrypt - Free SSL/TLS Certificates&lt;/a&gt;より抜粋。
&lt;/p&gt;

&lt;p&gt;
実際に利用するレベルから見ると、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 無料でSSLサーバ証明書を発行してくれるサービス。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; あくまでもサーバー証明書のみであり、個人証明書などは発行しない&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; ドメイン認証型の証明書&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 一般に、サーバー証明書は「ドメイン認証(DV)」、「組織(企業)認証(OV)」、「実在性監査済(EV)」がありますが、DVしか発行しない&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 無料の証明書にそこまで要求してはいけません。そのレベルの要求をするならお金を払いましょう。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
というサービスを提供してくれるサイト及びサービスである。
&lt;/p&gt;

&lt;p&gt;
日本語訳のサイトがあるので、是非一度見て見ることを勧める。&lt;a href=&quot;https://letsencrypt.jp&quot; class=&quot;urlextern&quot; title=&quot;https://letsencrypt.jp&quot;&gt;Let&amp;#039;s Encrypt 総合ポータル&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Let&amp;#039;s Encrypt\u3068\u306f\uff1f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;let_s_encrypt\u3068\u306f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;331-2185&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;注意点&quot;&gt;注意点&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 有効期間が90日&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; もう少し長くても良いような気もするが、自動化されている前提ならこれでいいのかもしれない。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 暗号アルゴリズムの危殆化やProtocolの更新などを考えると、短い方が良いかもしれない。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 秘密鍵ファイルはパスフレーズで暗号化していない&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTTP ServerやSMTP Serverなど、Server用途で利用するなら、これはこれで仕方がないことかもしれない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 秘密鍵ファイルの取り扱いには十分な注意をすること。SSLでHTTP部分を（多少）守ったからといって、サーバーが安全になるわけではないことに十分に留意すること&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 国コードや組織名の入力がない&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; DV(Domain Validation)ならば、Domainが存在しており、かつ、そのドメインが正当であると判断できればよいので、国コードや組織名はなくても問題ない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; もちろん、OVやEVならば、組織の存在認定などを受けることからも、国コードや組織名は必要&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2186-3313&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;事前準備&quot;&gt;事前準備&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
まずは、何はともあれ、公開するサイトを作成すること。
今回の諸元は以下のとおり
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; 項目 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; 内容 &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; 備考 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Platform   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; XenServer &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; VMのCPU    &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; vCPU x2 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; VMのMemory &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2G &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; VMのDisk   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 20G(boot)+100G(Data/DB) &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; NIC        &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; vNIC2本 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 管理用と対外接続用 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;         &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; FreeBSD 11.0 Release &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Install時点では -p7 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; pkg        &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Head(latest) &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; HTTPd      &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; NGINX &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; pkgからinstall &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;abbr title=&quot;Content Management System&quot;&gt;CMS&lt;/abbr&gt;        &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DokuWiki / WordPress &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 手動 install &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; SMTPd      &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Postfix &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 試験用 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; IMAPd      &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; dovecot &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 試験用 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3456-3931&amp;quot;} --&gt;
&lt;p&gt;
Let&amp;#039;s Encryptから証明書を取得する方法は複数ある。
Let&amp;#039;s Encrypt自身はLet&amp;#039;s Encryptの配布するcertbotを利用することを強く推奨している。
今回は、certbot利用する。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u4e8b\u524d\u6e96\u5099&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u4e8b\u524d\u6e96\u5099&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3314-4145&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit8&quot; id=&quot;その他の実装&quot;&gt;その他の実装&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; acme-client&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ports/securityに収録されている。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; OpenBSDで開発されており、LibreSSLを利用している。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cで記述されており、余計なパッケージ類が不要&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 連絡先のメールアドレスを指定できない模様。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; すこし古い(2017/02/01時点でportsは0.1.11だが、開発元では0.1.15)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u305d\u306e\u4ed6\u306e\u5b9f\u88c5&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u305d\u306e\u4ed6\u306e\u5b9f\u88c5&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4146-4538&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;certbotを利用する&quot;&gt;certbotを利用する&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
certbotはPython 2.7系用のscriptなので、Python 2.7が導入されていなければならない。まぁ、自分の場合、XenToolsが入っているので、どうせPython2.7がInstallされているから諦めるのがいいかもしれない。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; まずなによりもpkgで。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;pkg install py27-certbot&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 思ったよりも大量のpython関連モジュールが入るのでビビる。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; これ、わからないでもないけど、勘弁して欲しい気もするなぁ。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;certbot\u3092\u5229\u7528\u3059\u308b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;certbot\u3092\u5229\u7528\u3059\u308b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4539-5090&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;証明書関連処理&quot;&gt;証明書関連処理&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
必要なサイトのURLを確認する。
ここでは、仮に、Named Virtual Hostとして、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;&lt;a href=&quot;http://www.example.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.example.com&quot;&gt;www.example.com&lt;/a&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;&lt;a href=&quot;http://www.example.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.example.org&quot;&gt;www.example.org&lt;/a&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
を保持しており、管理者のMail Addressを
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;foo@example.net&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
とする。
&lt;/p&gt;

&lt;p&gt;
引数関係は &lt;a href=&quot;https://letsencrypt.jp/command/&quot; class=&quot;urlextern&quot; title=&quot;https://letsencrypt.jp/command/&quot;&gt;コマンド解説（コマンドリファレンス）&lt;/a&gt;を参照のこと。
ちょっとだけメモ。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–rsa-key-size N&lt;/code&gt; : RSAの鍵長。defaultは2048。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–must-staple&lt;/code&gt; : OCSP Must Staple 拡張を追加。defaultは追加しない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-cert-path CERT_PATH&lt;/code&gt; : 証明書を保存するPathを指定する。defaultは None&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–key-path KEY_PATH&lt;/code&gt; : 証明書のインストールや失効に用いる秘密鍵のパスを指定する。defaultは None&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–config-dir CONFIG_DIR&lt;/code&gt; : 設定ファイルのあるディレクトリを指定する。defaultは /etc/letsencrypt&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–work-dir WORK_DIR&lt;/code&gt; : 作業用ディレクトリを指定する。defaultは /var/lib/letsencrypt&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–logs-dir LOGS_DIR&lt;/code&gt; : ログファイルの保存先ディレクトリを指定する。defaultは /var/log/letsencrypt&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u8a3c\u660e\u66f8\u95a2\u9023\u51e6\u7406&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u8a3c\u660e\u66f8\u95a2\u9023\u51e6\u7406&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5091-6247&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit11&quot; id=&quot;取得の前提条件&quot;&gt;取得の前提条件&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
DV証明書である以上、Domainにアクセスできなければならない。したがって、上記2ドメインにhttpでアクセスするとサイトが返答する状況にしておくことが重要
また、管理用のメールアドレスもちゃんとメールが受け取れるようになっていることが重要。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u53d6\u5f97\u306e\u524d\u63d0\u6761\u4ef6&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u53d6\u5f97\u306e\u524d\u63d0\u6761\u4ef6&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;6248-6617&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit12&quot; id=&quot;取得&quot;&gt;取得&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;certbot certonly --webroot \
  -w /tmp/le/com -d www.example.com \
  -w /tmp/le/org -d www.example.org \
  -m foo@example.net --agree-tos&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u53d6\u5f97&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u53d6\u5f97&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;6618-6786&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit13&quot; id=&quot;更新&quot;&gt;更新&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;certbot certonly --webroot \
  -w /tmp/le/com -d www.example.com \
  -w /tmp/le/org -d www.example.org \
  --renew-by-default&lt;/pre&gt;

&lt;p&gt;
この更新スクリプトを作成し、cronでDailyに実行すれば、勝手に証明書が取得できる。
取得した証明書のTimestampを確認して、必要に応じてnginx restartすれば済むはず
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u66f4\u65b0&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u66f4\u65b0&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;6787-7163&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;問題点&quot;&gt;問題点&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
上記のやり方の場合、現在の自分の構成ではうまく動作しない。
現状の構成は、 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;                        +--- WAF1
                        |
            +--- lb1 ---+--- IPS1 ---+--- Web
Internet ---+           |            |
            +--- lb2 ---+--- IPS2 ---+--- Web
                        |
                        +--- WAF2&lt;/pre&gt;

&lt;p&gt;
となっているため、Let&amp;#039;s Encryptをlb1/lb2に仕掛けなければならない。
この場合、以下の問題が発生する
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書はlb1/2に設置されなければならない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; チャレンジ(存在検査)用のTokenはWeb Server側に仕掛けなければならない&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
これを解決するには、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;–server SERVER&lt;/code&gt; : ACME ディレクトリリソースの &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; を指定&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
を利用し、URIにWebサーバー側で提供することのないURIを設定した上で、そこにチャレンジしてもらうという手が考えられる。
流れはおそらく
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 外部のHostからLet&amp;#039;s EncryptのTokenを引っ張ってくる&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; lbの設定で、nginxでいうlocation指定にあるコンテンツにTokenを記載&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Let&amp;#039;s EncryptでChllangeしてもらう&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
となるはず。これをacme-clientで実行できるならば、そちらでやる手もあるし、certbotでやる手もありそうだ。
何れにしても、lbで処理を行うことは難しいと考えられるので、何らかのscriptを考える必要がありそうだ。
&lt;/p&gt;

&lt;p&gt;
なお、Let&amp;#039;s EncryptにおけるACMEでのドメインの検査は、http-01, tls-sni-01, dns-01の３種類があるので、dns-01を利用する手も考えられる。しかし、自分の管理しているDNSはDNS Server間での同期処理はさせず、全DNS Serverにコンテンツを個別に設置している。しかも、一部のNSは外部に設置しているので、更新処理を自動化するのは悩ましい。
&lt;/p&gt;

&lt;p&gt;
なお、ACMEはInternet Draft(ID)になっており、2017/02/01現在、draft-ietf-acme-acme-04として公開されている。これを見ると、oob-01も定義されている模様。
&lt;/p&gt;

&lt;p&gt;
この問題に関しては、少しゆっくり考える必要がありそうだ。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u554f\u984c\u70b9&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u554f\u984c\u70b9&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;7164-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 14 May 2018 04:51:02 +0000</pubDate>
        </item>
        <item>
            <title>Let&#039;s Encryptを少し調べてみた</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0203_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;let_s_encryptを少し調べてみた&quot;&gt;Let&amp;#039;s Encryptを少し調べてみた&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
FreeBSDでacme-clientを利用してLet&amp;#039;s Encryptの証明書取得を行うことを考えた。ので、ちょっと調べたメモ
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Let&amp;#039;s Encrypt\u3092\u5c11\u3057\u8abf\u3079\u3066\u307f\u305f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;let_s_encrypt\u3092\u5c11\u3057\u8abf\u3079\u3066\u307f\u305f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-188&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;let_s_encryptとは&quot;&gt;Let&amp;#039;s Encryptとは？&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Let&amp;#039;s Encryptは、公共の利益を図る目的で Internet Security Research Group (ISRG) が運営する、無料で利用でき、自動化されていて、オープンな認証局。
&lt;/p&gt;

&lt;p&gt;
Let&amp;#039;s Encryptの基本方針
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 無料&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ドメインを保持する者が無料で信頼された証明書を取得可能&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 運用の自動化&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書の取得から更新まで自動化することが可能&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 安全&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 認証局サイド、管理者の両面から、最先端のプラットフォームを提供&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 透明性&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書の発行と失効が公式に記録され、一般公開され、誰でも監査できる&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; オープン&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 各手続き(プロトコル)を、オープン標準として公表&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 互助・協力&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; コミュニティの利益のための共同の取り組みであり、1つの組織によって統制されているものではない&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
(以上、&lt;a href=&quot;https://letsencrypt.org/about/&quot; class=&quot;urlextern&quot; title=&quot;https://letsencrypt.org/about/&quot;&gt;About - Let&amp;#039;s Encrypt - Free SSL/TLS Certificates&lt;/a&gt;より抜粋)
&lt;/p&gt;

&lt;p&gt;
実際に利用するレベルから見ると、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 無料でSSLサーバ証明書を発行してくれるサービス。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; あくまでもサーバー証明書のみであり、個人証明書などは発行しない&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; ドメイン認証型の証明書&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 一般に、サーバー証明書は「ドメイン認証(DV)」、「組織(企業)認証(OV)」、「実在性監査済(EV)」がありますが、DVしか発行しない&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 無料の証明書にそこまで要求してはいけません。そのレベルの要求をするならお金を払いましょう。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
というサービスを提供してくれるサイト及びサービスである。
&lt;/p&gt;

&lt;p&gt;
日本語訳のサイトがあるので、是非一度見て見ることを勧める。&lt;a href=&quot;https://letsencrypt.jp&quot; class=&quot;urlextern&quot; title=&quot;https://letsencrypt.jp&quot;&gt;Let&amp;#039;s Encrypt 総合ポータル&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Let&amp;#039;s Encrypt\u3068\u306f\uff1f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;let_s_encrypt\u3068\u306f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;189-2052&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;注意点&quot;&gt;注意点&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 有効期間が90日&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; もう少し長くても良いような気もするが、自動化されている前提ならこれでいいのかもしれない。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 暗号アルゴリズムの危殆化やProtocolの更新などを考えると、短い方が良いかもしれない。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 秘密鍵ファイルはパスフレーズで暗号化していない&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTTP ServerやSMTP Serverなど、Server用途で利用するなら、これはこれで仕方がないことかもしれない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 秘密鍵ファイルの取り扱いには十分な注意をすること。SSLでHTTP部分を（多少）守ったからといって、サーバーが安全になるわけではないことに十分に留意すること&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 国コードや組織名の入力がない&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; DV(Domain Validation)ならば、Domainが存在しており、かつ、そのドメインが正当であると判断できればよいので、国コードや組織名はなくても問題ない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; もちろん、OVやEVならば、組織の存在認定などを受けることからも、国コードや組織名は必要&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2053-3178&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;証明書の取得方法&quot;&gt;証明書の取得方法&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Let&amp;#039;s EncryptはDV証明書を発行するにあたって、ACME(Automatic Certificate Management Environment)を使用する。
このACMEは2017/02/03現在、draft-ietf-acme-acme-04として公開されており、将来RFCになることが期待されている。
&lt;/p&gt;

&lt;p&gt;
このACMEを利用した証明書取得のためのツールは様々あるが、Let&amp;#039;s Encryptを利用するにあたっては、Let&amp;#039;s Encryptが公開しているcertbotを利用するのが最も簡単であると思われる。
&lt;/p&gt;

&lt;p&gt;
様々な実装のリストもLet&amp;#039;s Encryptが公開している。&lt;a href=&quot;https://letsencrypt.org/docs/client-options/&quot; class=&quot;urlextern&quot; title=&quot;https://letsencrypt.org/docs/client-options/&quot;&gt;https://letsencrypt.org/docs/client-options/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u8a3c\u660e\u66f8\u306e\u53d6\u5f97\u65b9\u6cd5&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u8a3c\u660e\u66f8\u306e\u53d6\u5f97\u65b9\u6cd5&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3179-3834&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;acmeで証明書を取得・失効する流れ&quot;&gt;acmeで証明書を取得・失効する流れ&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
acme-clientのManual Pageから抄訳
&lt;/p&gt;

&lt;p&gt;
証明書取得の流れは以下の通り。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CA(Let&amp;#039;s EncryptのACME Server)に接続し、リソースリストを要求する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; (Option) RSAアカウント鍵を作成・登録する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RSAアカウント鍵の確認。これは、CAへの認証とその後すべてのやりとりに利用される&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 各domainごとに以下の処理を行う&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; CAに対し、認証のChallengeを提出&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Challengeへの返答ファイルを作成する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cアのchallengeによる検証を待つ&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 展開されたRSAもしくはECDSAのdomain鍵を読み込む&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; そのdomain及びaltnamesに記載されたドメイン用の、domain鍵を用いたX509リクエストを作成する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X509リクエストへの署名をCAに要求する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X509証明書(Certificate)をダウンロードする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CA issureから来たX509証明書を展開する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書チェーンをissureからダウンロードする&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
証明書失効の流れも同様。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CA(Let&amp;#039;s EncryptのACME Server)に接続し、リソースリストを要求する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; (もし見つかれば)、X509証明書を読み込み展開する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X509 失効要求書を作成する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CAに失効要求書を提出&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 証明書、チェン、そして、全チェーンを削除する。&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;acme\u3067\u8a3c\u660e\u66f8\u3092\u53d6\u5f97\u30fb\u5931\u52b9\u3059\u308b\u6d41\u308c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;acme\u3067\u8a3c\u660e\u66f8\u3092\u53d6\u5f97\u30fb\u5931\u52b9\u3059\u308b\u6d41\u308c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3835-5207&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;challenge&quot;&gt;Challenge&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
ACMEにおけるChallengeとは、要するに「存在確認」を意味する。この存在確認方法として以下の３つがIDに定義されている。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; http-01&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tls-sni-01&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; dns-01&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Challenge&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;challenge&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5208-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 03 Feb 2017 05:47:55 +0000</pubDate>
        </item>
        <item>
            <title>Vulsrepo on nginx with FreeBSD</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0206_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;vulsrepo_on_nginx_with_freebsd&quot;&gt;Vulsrepo on nginx with FreeBSD&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
NGINXは標準ではCGIを動作させることができない。そこで、fcgiwrapを利用して動かしてみる。
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://qiita.com/hmikisato/items/c793ced0ba2695a89de6&quot; class=&quot;urlextern&quot; title=&quot;http://qiita.com/hmikisato/items/c793ced0ba2695a89de6&quot;&gt;http://qiita.com/hmikisato/items/c793ced0ba2695a89de6&lt;/a&gt;を参考にした。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;pkg install nginx fcgiwrap&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;pkg install p5-CGI p5-JSON&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
で、fcgiwrapの設定。rc.confに以下を記載
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nginx_enable=&amp;quot;YES&amp;quot;

fcgiwrap_enable=&amp;quot;YES&amp;quot;
fcgiwrap_user=&amp;quot;monitor&amp;quot;
fcgiwrap_socket_owner=&amp;quot;monitor&amp;quot;
fcgiwrap_socket=&amp;quot;unix:/var/run/fcgiwrap/fcgiwrap.socket&amp;quot;&lt;/pre&gt;

&lt;p&gt;
nginx.confを以下のように編集
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;load_module /usr/local/libexec/nginx/ngx_mail_module.so;
load_module /usr/local/libexec/nginx/ngx_stream_module.so;

worker_processes  1;
user monitor;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /home/monitor/htdocs/vulsrepo;
            index  index.html;
        }

	location ~ \.cgi {
		include		fastcgi_params;
		fastcgi_pass	unix:/var/run/fcgiwrap/fcgiwrap.socket;
		fastcgi_param	SCRIPT_FILENAME $document_root$fastcgi_script_name;
		root		/home/monitor/htdocs/vulsrepo;
	}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }
    }
}&lt;/pre&gt;

&lt;p&gt;
そして、nginxとfcgiwrapを起動
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# service fcgiwrap start
# service nginx start&lt;/pre&gt;

&lt;p&gt;
次にvulsrepoを導入。
Document rootを&lt;code&gt;/home/monitor/htdocs/vulsrepo&lt;/code&gt;にしてあるので、以下を実行。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mkdir -p ~monitor/htdocs/vulsrepo
chown -R monitor:staff ~monitor/htdocs&lt;/pre&gt;

&lt;p&gt;
次に、vulsrepoをgithubから取得
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;monitor$ cd /home/monitor/htdocs
monitor$ git clone https://github.com/usiusi360/vulsrepo.git&lt;/pre&gt;

&lt;p&gt;
vulsの出力を取り込む必要があるので、
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;monitor$ vuls scan 
monitor$ vuls report -to-localfile -format-json --cvedb-path=/home/monitor/vuls/cve.sqlite3  &lt;/pre&gt;

&lt;p&gt;
を実行した上で、
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;monitor$ cd /home/monitor/htdocs/vulsrepo
monitor$ ln -s /home/monitor/vuls/results .&lt;/pre&gt;

&lt;p&gt;
これで、Browserからアクセスすれば、Vulsrepoの出力が見れるはず。
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_round wrap_important plugin_wrap&quot;&gt;
&lt;p&gt;
重要
&lt;/p&gt;

&lt;p&gt;
vulsrepoのcgi script(&lt;code&gt;vulsrepo/dist/cgi/getfilelist.cgi&lt;/code&gt;)は、sh-bang!形式で、先頭行に&lt;code&gt;#!/usr/bin/perl&lt;/code&gt;と記載されている。FreeBSDの場合、perlをpkgで投入すると、&lt;code&gt;#!/usr/local/bin/perl&lt;/code&gt;に修正する必要があるので、注意すること
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
あとは、毎日の更新問題だけ。
以下のようなscriptをcronでdailyに動かせばOK
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#! /bin/sh

##### Main Routine
. ~/.goenv.sh
DATE=`date &amp;quot;+%Y&amp;quot;`

${HOME}/go/bin/go-cve-dictionary fetchnvd -years ${DATE}
${HOME}/go/bin/go-cve-dictionary fetchjvn -years ${DATE}

# Run vuls
cd $HOME/vuls

${HOME}/go/bin/vuls scan
${HOME}/go/bin/vuls report -to-localfile -format-json --cvedb-path=${HOME}/vuls/cve.sqlite3&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 14 May 2018 04:51:18 +0000</pubDate>
        </item>
        <item>
            <title>sudoersの豆</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0308_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sudoersの豆&quot;&gt;sudoersの豆&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
sudoを使っていて、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; あるアカウントに対して&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; あるコマンドの実行権だけrootで動かせるようにしたい&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; その際、引き継いで欲しい環境変数がある&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
という難しい状況が発生することがある。まぁvulsなんだが。
&lt;/p&gt;

&lt;p&gt;
こういうときには、sudoersに、こんな風に設定すればよい
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;vuls ALL=(ALL) NOPASSWD:/usr/bin/yum --changelog --assumeno update *
Defaults:vuls env_keep=&amp;quot;http_proxy https_proxy HTTP_PROXY HTTPS_PROXY&amp;quot;&lt;/pre&gt;

&lt;p&gt;
これみて意味がわからなくて、manみてもわからなくて、ググれない人は、これ使っちゃダメですよw
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 08 Mar 2017 05:12:40 +0000</pubDate>
        </item>
        <item>
            <title>Translator</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0425_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;translator&quot;&gt;Translator&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
何を血迷ったか、翻訳エンジンについてちょっとだけ調べてみたので、メモを。
&lt;/p&gt;

&lt;p&gt;
かるーく（ゆるーく）調べた（ぐぐった）ところ、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 英単語の平均文字数は 4.5文字とか5.1文字くらいらしい。まぁ、5文字と考えておけばいいか&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 英語1文章に含まれる単語数は、まぁ、色々違うらしい。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; カジュアルな文章で20単語位&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 一般的な文章で25単語位&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 新聞で20単語位&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 子供向け絵本で5単語位&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
ものすごく単純に RFC文書における単語数を数えて平均を取ってみると、52645文字、6718 単語と言われる。（7.836文字/単語)
この数値は、単純にwcで見ただけなので、実際にはHeaderやFooter、Indexなどがある。
ちゃんと調べるのは単純に面倒なので、大雑把に考えて、平均で6500単語、8文字/単語くらいと近似できると &lt;strong&gt;思う&lt;/strong&gt; ので、1 RFCあたり5.5万文字と見ればそんなに外さないと思われる。
&lt;/p&gt;

&lt;p&gt;
ちょっと面白かったのは、&lt;a href=&quot;http://iinetto.com/plain-english-part-3/&quot; class=&quot;urlextern&quot; title=&quot;http://iinetto.com/plain-english-part-3/&quot;&gt;Plain English　読みやすさの指標（FKR/FKG/GFS）って一体何が基準なの！？&lt;/a&gt;の記事。
軽く眺めておくといいかも。
&lt;/p&gt;

&lt;p&gt;
Google様で &lt;code&gt;翻訳&lt;/code&gt; &lt;code&gt;&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/code&gt; で検索してみる
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://cloud.google.com/translate/?hl=ja&amp;amp;utm_source=google&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=2015-q1-cloud-japac-jp-translate-skws-freetrial-jap&amp;amp;utm_term=翻訳api&amp;amp;gclid=CNyu3MzJvtMCFQkEKgodjJAHlg&quot; class=&quot;urlextern&quot; title=&quot;https://cloud.google.com/translate/?hl=ja&amp;amp;utm_source=google&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=2015-q1-cloud-japac-jp-translate-skws-freetrial-jap&amp;amp;utm_term=翻訳api&amp;amp;gclid=CNyu3MzJvtMCFQkEKgodjJAHlg&quot;&gt;Googleの翻訳API&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 原則有料。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 言語検出および翻訳に関しては 1万文字/$20&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; RFCで考えると、&lt;code&gt;5.5万/1万*20 = $120&lt;/code&gt; として、$1=¥110とすれば、¥13,200位か。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; google翻訳知らない人は &lt;code&gt;google&lt;/code&gt; &lt;code&gt;translate&lt;/code&gt;でぐぐれ&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.microsoft.com/ja-jp/translator/translatorapi.aspx&quot; class=&quot;urlextern&quot; title=&quot;https://www.microsoft.com/ja-jp/translator/translatorapi.aspx&quot;&gt;MicrosoftのTranslator API&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 個人利用と法人利用（ビジネス利用）がある&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; サービスとしても提供されている&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 200万字まで無料。（文字数であり、単語数ではない）&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; RFCで考えてみると&lt;code&gt;200万/5.5万≒36&lt;/code&gt; だから、36本翻訳できる計算になる。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; 個人の普段使いだと思えば十分だが、プロの翻訳者では少ないというあたりなんだろうな。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; それ以降は段階的に料金が上がる。&lt;a href=&quot;http://datamarket.azure.com/dataset/bing/microsofttranslator&quot; class=&quot;urlextern&quot; title=&quot;http://datamarket.azure.com/dataset/bing/microsofttranslator&quot;&gt;値段表が出るページ&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
実質で使える翻訳APIはMSとGoogleしかなさそうだが、翻訳精度がよほど高くない限りGoogleは使えないなぁ。
MSの翻訳エンジン、textで流し込むぶんには結構いい翻訳精度だったし。
&lt;/p&gt;

&lt;p&gt;
ただ、どちらの翻訳エンジンも文脈は解釈しない（できない）から、どうしたって人様が手をかけてやる必要は（いまのところ）ある。
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 25 Apr 2017 03:37:25 +0000</pubDate>
        </item>
        <item>
            <title>Microsoft Translator</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0425_02</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;microsoft_translator&quot;&gt;Microsoft Translator&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
迂闊にもMS Translatorがいけてることに気がついたので、ちょっと試してみる。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://qiita.com/kemayako/items/21fe36005e6e729aff77&quot; class=&quot;urlextern&quot; title=&quot;http://qiita.com/kemayako/items/21fe36005e6e729aff77&quot;&gt;Microsoft Translator APIを使ってみる&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://qiita.com/n0bisuke/items/350752978b16f4429b31&quot; class=&quot;urlextern&quot; title=&quot;http://qiita.com/n0bisuke/items/350752978b16f4429b31&quot;&gt;Microsoft Translator Text APIをNode.jsから使ってみる&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://qiita.com/TakeshiNickOsanai/items/a8039ba8d558f7c8a05e&quot; class=&quot;urlextern&quot; title=&quot;http://qiita.com/TakeshiNickOsanai/items/a8039ba8d558f7c8a05e&quot;&gt;Microsoft Translator テキスト API で、日本語を英語に翻訳するサンプル&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
しかし、MicrosoftのSubscriction関連の設定は面倒だった。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.microsoft.com/translator/&quot; class=&quot;urlextern&quot; title=&quot;http://www.microsoft.com/translator/&quot;&gt;Microsoft Translator&lt;/a&gt;のページを開く&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ここに色々情報がまとまっているので、頑張って見てみるといい&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://datamarket.azure.com/home/&quot; class=&quot;urlextern&quot; title=&quot;https://datamarket.azure.com/home/&quot;&gt;Microsoft DataMarket&lt;/a&gt;のページを開き、右上からSign-Inする&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 登録がない人は、ここから登録すること。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Skype使っていて移行した人はそのアカウントで良い。電子メールアドレスでも電話番号でも良い。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Skype IDでloginした&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://datamarket.azure.com/developer/applications&quot; class=&quot;urlextern&quot; title=&quot;https://datamarket.azure.com/developer/applications&quot;&gt;アプリケーションの登録&lt;/a&gt;ページを開き、必要な情報を入力する&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; クライアントID: アプリケーションの識別子。他とぶつからない好きな文字列を入力&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 名前: アプリケーションの名前&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 顧客の秘密: 特に変更する必要はない&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; リダイレクトURI: Microsoft Translatorの場合、無効なURLを入力すれば良い&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; サブドメインアクセスを有効にする: オフのままで良い&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 説明: 登録内容の説明など&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; クライアントID(client id)と顧客の秘密(client secret)は、APIを利用する際に必要になる。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; あとは、API使って普通に叩けばOK&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 25 Apr 2017 04:38:30 +0000</pubDate>
        </item>
        <item>
            <title>LDAP管理ソフトを探す</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0518_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ldap管理ソフトを探す&quot;&gt;LDAP管理ソフトを探す&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
以前、(&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2016:0308_01&quot; class=&quot;wikilink1&quot; title=&quot;tweet:2016:0308_01&quot; data-wiki-id=&quot;tweet:2016:0308_01&quot;&gt;PHP LDAP Admin&lt;/a&gt;)のつぶやきを書いたが、その後状況が変わっていないかちょっと調べてみる。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.admin4.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.admin4.org&quot;&gt;Admin4&lt;/a&gt; どうやら、細々メンテナンスはされている模様。2年に1回くらいUpdateされているように見える&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Pythonなので、割と何でも動かせそう&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://directory.apache.org&quot; class=&quot;urlextern&quot; title=&quot;http://directory.apache.org&quot;&gt;The Apache Directory Studio(TM)&lt;/a&gt; でかい。Java…&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.fusiondirectory.org&quot; class=&quot;urlextern&quot; title=&quot;https://www.fusiondirectory.org&quot;&gt;Fusion Directory&lt;/a&gt; FreeBSDでも動かしている人はいるらしい。画面からでは理解しにくい…&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; PHP+perl+いろいろ。ちょっと面倒そうな感じ&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.ldap-account-manager.org/lamcms/&quot; class=&quot;urlextern&quot; title=&quot;https://www.ldap-account-manager.org/lamcms/&quot;&gt;LDAP Account Manager&lt;/a&gt; 悪くなさそうなんだけど、いまいち。商用版がある&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Accountの管理だけならおそらくこれでいい。FreeBSDのportsがある&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page&quot; class=&quot;urlextern&quot; title=&quot;http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page&quot;&gt;PHP LDAP Admin&lt;/a&gt; もう終わってるとおもう。2013年以降更新なし&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://ltb-project.org/wiki/documentation/self-service-password&quot; class=&quot;urlextern&quot; title=&quot;http://ltb-project.org/wiki/documentation/self-service-password&quot;&gt;Self Service Password&lt;/a&gt; これは、ユーザーに公開するパスワード変更用のI/Fとしては良さそう&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; FreeBSDのportsにある&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
こうしてみると、LDAP管理系のソフトが本当にない。Java使えばいいんだろうけど、管理がなぁ…
ActiveDirectoryに行く気持ちがわかってきた…
&lt;/p&gt;

&lt;p&gt;
古いの承知でPHP LDAP Admin使うのか？…Admin4かなぁ…
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 18 May 2017 02:52:48 +0000</pubDate>
        </item>
        <item>
            <title>shell scriptとwhileとreadとssh</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0623_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;shell_scriptとwhileとreadとssh&quot;&gt;shell scriptとwhileとreadとssh&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
大変にハマったのでメモ書き。今日はもういいや。
&lt;/p&gt;

&lt;p&gt;
shell scriptにおいて、ファイルから1行ずつ読み込んで処理をするような場合、以下のようにかける。
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;read&lt;/span&gt; line; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${line}&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
ところが、この手を使ってsshを実行すると、なぜか最初の行しか実行されない
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;read&lt;/span&gt; line; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; xxx.xxx.xxx.xxx &lt;span class=&quot;co1&quot;&gt;${line}&lt;/span&gt;	&lt;span class=&quot;co0&quot;&gt;# XXX 期待通りに動かない&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
原因はsshコマンド実行に伴う標準入力の切替と考えられる。
sshコマンドを実行すると、ローカルホストのstdinからの入力を終了し、sshで指定したリモートホストのstdinからの入力受付を開始する。
従って、ローカルホストのファイルの読込みを終了させた上でsshコマンドを実行し、再びreadコマンドを実行しようとしていると考えられる。もちろん、この時点で既にファイルがcloseされている為、whileが終了してしまう。
&lt;/p&gt;

&lt;p&gt;
対策は、sshに&lt;code&gt;-n&lt;/code&gt;オプションをつけること。これよって、sshコマンドのstdin切り替えを禁止することが出来る。
&lt;/p&gt;

&lt;p&gt;
この原因がちっともわからず、数時間を無駄にしてしまった。
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;read&lt;/span&gt; line; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; xxx.xxx.xxx.xxx &lt;span class=&quot;co1&quot;&gt;${line}&lt;/span&gt;	&lt;span class=&quot;co0&quot;&gt;# これで/dev/nullがsshのstdinにつながる&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
このほかに、for文で &lt;code&gt;for line in `cat file`&lt;/code&gt; で代用する手も考えられるが、これは、行にスペースがある場合、$lineに代入される値が１行まるごとではなく、スペースまでの部分になるので、ここにも明確な罠があると考えられる。これを回避するにはIFSを変えれば良いのだから、
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;IFS&lt;/span&gt;=$&lt;span class=&quot;st_h&quot;&gt;&#039;\n&#039;&lt;/span&gt;				&lt;span class=&quot;co0&quot;&gt;# 区切り文字を&amp;quot; &amp;quot;から&amp;quot;\n&amp;quot;に変える&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; line &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;		&lt;span class=&quot;co0&quot;&gt;# while readの代わりにcatで読み込ませる&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; xxx.xxx.xxx.xxx &lt;span class=&quot;co1&quot;&gt;${line}&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
あと、whileはちょっと特殊な制御文で、場合によってはwhile内で変数設定しているはずなのにloopをでてくると変数が空のようなことが起こる。
これは、Whileと他のコマンドを組み合わせた場合、組み合わせ方次第で処理がsubshellがわで処理されてしまう事が原因である。
shellでpipelineを用いて実行した処理は、subshellで処理される。while loopの内部でpipelineを利用すると、whileブロック全体がsubshellで処理されるため、whileブロックの内部と外部で変数の共有が出来ない。
このような場合、whileに対して出力をredirectしてやることで解決できる。
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;read&lt;/span&gt; line; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;re2&quot;&gt;OUT&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${line}&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/test/test2&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;re4&quot;&gt;$1&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${OUT}&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
なお、/bin/shの引数に &lt;code&gt;-v&lt;/code&gt; や &lt;code&gt;-x&lt;/code&gt; をつけると、デバッグに大変に役立つ
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 23 Jun 2017 12:45:00 +0000</pubDate>
        </item>
        <item>
            <title>WebPageのSSL化</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0626_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;webpageのssl化&quot;&gt;WebPageのSSL化&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
本サイトを含め、個人的に管理しているサイトがそこそこあるわけだが、昨今の様々な要請からSSL化を進めることにした。
（そういうわけでLet&amp;#039;s Encryptと格闘していたのだが）
&lt;/p&gt;

&lt;p&gt;
その結果、WordPressとRedmine系を除いて、概ねLet&amp;#039;s Encryptの証明書を利用したSSL化が一通り区切りがついた。
&lt;/p&gt;

&lt;p&gt;
まぁ、証明書が入手できさえすれば、SSL化は簡単ではあるけど。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;server {
  listen      xxx.xxx.xxx.xxx:80;
  server_name www.seirios.org;
  return      301 https://$host$request_uri;
}

server {
  listen      xxx.xxx.xxx.xxx:443 ssl;
  server_name www.seirios.org;
  ssl         on;
  ...
}&lt;/pre&gt;

&lt;p&gt;
結構重要なこととして、コンテンツ側に記載されているLink等のうち、自らを示しているURLを一通り確認すること。
これをしないと、結局一部SSL化されないURLが残るので、面倒なことになりかねない。
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 26 Jun 2017 05:45:29 +0000</pubDate>
        </item>
        <item>
            <title>気になった記事から思ったこと @20170705-1</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0706_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;気になった記事から思ったこと_20170705-1&quot;&gt;気になった記事から思ったこと @20170705-1&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
非常に個人的な意見なので、気に入らない人は華麗にスルーしてください。
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://itpro.nikkeibp.co.jp/atcl/column/14/549762/062900154/?n_cid=nbpitp_fbed&amp;amp;rt=nocnt&amp;amp;ST=spleaf&quot; class=&quot;urlextern&quot; title=&quot;http://itpro.nikkeibp.co.jp/atcl/column/14/549762/062900154/?n_cid=nbpitp_fbed&amp;amp;rt=nocnt&amp;amp;ST=spleaf&quot;&gt;http://itpro.nikkeibp.co.jp/atcl/column/14/549762/062900154/?n_cid=nbpitp_fbed&amp;amp;rt=nocnt&amp;amp;ST=spleaf&lt;/a&gt;の記事についておもうことを少し。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; googleが検索市場で独占的な地位にいる&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 代替が事実上存在しない(百度？bing? yahoo?)以上、独占状態になるのは当然。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; これだけの長きにわたって、「無料で高精度」の検索エンジンを提供しているのだから、googleがすごいのだとしか言いようもない。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 対抗が現れるまではどうしようもないというのが実情だろう&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; スポンサー広告を優先して、公平な市場競争を阻害した&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; タダで受け取っている情報にある種のバイアスがかかるのは当然。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; バイアスは小さい方が望ましいが、googleはボランティアではない。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; バイアスがかかることが嫌なら検索エンジンを変えればいい。ないなら作るしかない。(死屍累々の道だけど)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
個人的には、googleが正しいとは思わない(むしろできるなら使いたくない)。しかし、この件に関して言えば、「ヨーロッパすらこの程度か。日本の民間人と変わらないレベルだ」と思ってしまう。世界的に「情報と安全はタダ」の方向に思考が向かっているとしか思えない。本当なら、利用する側がすべき選択や判断を提供者側に押し付けて、自らは被害を受けた、的なワガママに見えてしまう。
&lt;/p&gt;

&lt;p&gt;
いっそ、googleは、「バイアスをかけない検索結果の提供」を始めればいいんじゃないかと。「有料」で。そうすれば、情報の対価と、企業広告・スポンサードの意味がわかるんじゃないか？とおもうのです。
&lt;/p&gt;

&lt;p&gt;
わかるかなぁ(松鶴家千とせ風)
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 06 Jul 2017 03:10:24 +0000</pubDate>
        </item>
        <item>
            <title>気になった記事から思ったこと @20170705-2</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0706_02</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;気になった記事から思ったこと_20170705-2&quot;&gt;気になった記事から思ったこと @20170705-2&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://internet.watch.impress.co.jp/docs/column/security/1068807.html&quot; class=&quot;urlextern&quot; title=&quot;http://internet.watch.impress.co.jp/docs/column/security/1068807.html&quot;&gt;山賀さんの記事&lt;/a&gt;より。
&lt;/p&gt;

&lt;p&gt;
要するに、
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 多くのユーザーが、脆弱性を抱えているadobe flashを利用している&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 調査範囲内では、古いプレーヤーの利用率が、前年の調査より上がっている&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; flash playerの利用率自体は減少傾向にある&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; duo securityは、chromeの利用を推奨している。セキュリティ系の企業が名指しで実装を推奨するのは珍しい&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
といった内容です。
&lt;/p&gt;

&lt;p&gt;
記事中に記載されていませんでしたが、Duo security (最初avastと書きましたが、思い込みでの勘違いでした。訂正します) がchromeを推すのは、恐らく、
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; chrome自身にflash playerが内蔵されている&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; chromeは更新が早く、常に最新のflash playerに対応している&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 調査結果から、割合chromeユーザーは更新頻度が高いと見られる&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
からでしょう。推すことに対する是非は人によるでしょうが、例えばavastは昔からchrome推しなので、まぁそんなものかと。
まだ、著者の山賀さん曰く
&lt;/p&gt;

&lt;p&gt;
「あまりの調査結果に「やむにやまれず」という思いはちょっと感じられます^^」
&lt;/p&gt;

&lt;p&gt;
とありましたが、僕もそう思います。
&lt;/p&gt;

&lt;p&gt;
個人的にはflashはもう滅びて欲しいけど、使うなら常に最新の物を使いたいものですね。
&lt;/p&gt;

&lt;p&gt;
困るのは、子供付けのページの動画がflashが多いことだな。これは、なんとかならないものかと思います。
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 06 Jul 2017 03:08:51 +0000</pubDate>
        </item>
        <item>
            <title>HTTPで少しハマったことメモ</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:0719_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;httpで少しハマったことメモ&quot;&gt;HTTPで少しハマったことメモ&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
NGINXやApache(おそらくSQUIDでも)あたりでReverse Proxy(まぁ、Load Balancer的に使う設定)をしようとした場合に、中継段となるhttpdでHeaderを追加したいことはしばしばある。
こういう場合に、&lt;code&gt;X-xxx-xxx&lt;/code&gt;のようなHeaderを追加することがしばしばある。
&lt;/p&gt;

&lt;p&gt;
しかし、この手法は、一般的によく利用されている慣習であって、HTTP Protocol的に規定されているものではなかった。そして、この慣習は2012年6月に非推奨となった。
&lt;/p&gt;

&lt;p&gt;
なぜそうなったかに関しては&lt;a href=&quot;https://tools.ietf.org/html/rfc6648&quot; class=&quot;urlextern&quot; title=&quot;https://tools.ietf.org/html/rfc6648&quot;&gt;RFC6648&lt;/a&gt;を参照のこと。まぁ、要するに「非標準のフィールドが標準になったときに発生した不便さのため」ということになると思う。
&lt;/p&gt;

&lt;p&gt;
んで、どうすりゃいいかということなのだが、要するに「使われていない」かつ意味がわかりやすいものを使えということらしい。
&lt;/p&gt;

&lt;p&gt;
でも、それはそれで困るよなぁ…….
&lt;/p&gt;

&lt;p&gt;
仕方がないから、被りそうもない文字列を入れるしかないか。
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 19 Jul 2017 06:09:07 +0000</pubDate>
        </item>
        <item>
            <title>OPNSense</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2017:1110_01</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;opnsense&quot;&gt;OPNSense&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
最近まで自宅の対外接続Router兼Firewallとして&lt;a href=&quot;https://www.pfsense.org&quot; class=&quot;urlextern&quot; title=&quot;https://www.pfsense.org&quot;&gt;pfSense&lt;/a&gt;を利用していた。
しかし、pfSenseの来船に関する変更を見て、ちょっと調べ直したら、&lt;a href=&quot;https://opnsense.org&quot; class=&quot;urlextern&quot; title=&quot;https://opnsense.org&quot;&gt;OPNSense&lt;/a&gt; がかなりよくなっていることに気がついたので、OPNSenseに切り替えてみる気になった。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OPNSenseのIPSがsuricataになってた (いつからかわかってない)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://openvpn.net&quot; class=&quot;urlextern&quot; title=&quot;https://openvpn.net&quot;&gt;OpenVPN&lt;/a&gt; を利用するためのClient ConfigurationがExportできるようになってた&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Commandlineからの制御とは言え、pkgが利用できる&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; すなわち、CEoRで多少の面倒はみられると言うこと&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; pfSenseで自分が利用していた機能は全てOPNSenseで動作する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 実質の影響はないとは言え、pfSenseのライセンス変更は正直気に入らなかった&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; もちろん、彼らはOpenであんなに素晴らしいシステムを公開しているのだから、彼らに文句を言う気はない。むしろ当然とも思う&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 気に入らなかったら意見は述べて良い。それでも気に入らなければ別実装を使え！は鉄則。彼らだって完全なVoluntierではないのだから&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
というわけで、Installしたのでそのメモを。
&lt;/p&gt;

&lt;p&gt;
（最終的なやつは別記事にしてあげるので、ここではメモのみ記述する）
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OPNSense&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;opnsense&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1445&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;install&quot;&gt;Install&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
基盤は例によってXenServer。
&lt;/p&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vCPU &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Mem  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 1G &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; HDD  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 10G &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; NIC  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1505-1559&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Install&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1446-1560&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;まずは最初の作業&quot;&gt;まずは最初の作業&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OPNSenseのInstall ISO ImageをDownloadし、XenServer用のISO供給用NFSサーバーに設置&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 上記SpecでVMを作成し、ISOイメージから起動&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Login Promptが出るので、User: &lt;code&gt;installer&lt;/code&gt; / Passwd: &lt;code&gt;opnsense&lt;/code&gt; でloginする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 画面の指示に従いInstallを進める&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Installが終了したら、再起動し、ISOイメージをEjectする&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u307e\u305a\u306f\u6700\u521d\u306e\u4f5c\u696d&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u307e\u305a\u306f\u6700\u521d\u306e\u4f5c\u696d&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1561-1976&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;consoleからの設定&quot;&gt;Consoleからの設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 起動すると、Login Promptが出るので、User: &lt;code&gt;root&lt;/code&gt; / Passwd: &lt;code&gt;opnsense&lt;/code&gt; でloginする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Network関連の設定をする&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;1) Assign interfaces&lt;/code&gt; から、認識しているNICを設定する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2) Set interface IP address&lt;/code&gt; から、LAN I/FにIP Addressを割り当てる&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ここまでを行うとconsole画面に割り当てたIPアドレスが表示されるようになる。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ここまで実行するとGUIで設定できるようになる&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Console\u304b\u3089\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;console\u304b\u3089\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1977-2494&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;guiからの設定&quot;&gt;GUIからの設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
ここからは、普通に色々設定すれば良いのだが、特に気にしておくべきことをメモしておく。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; まず、XenServer側で TSO をOffにしておく。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; XenServerにloginした上で、以下を実行&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;xe vif-param-set uuid=[VMのVIF UUID] other-config:ethtool-tso=&amp;quot;off&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Browserで、設定したIPアドレスにアクセスする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; System → Access → Users&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 自分用アカウントを作成する&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; System → Settings → Administration&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Secure Shell をEnableにし、SSH portを変更する&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; System → Settings → Tunables&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;net.inet.tcp.tso&lt;/code&gt; を 0にする&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;GUI\u304b\u3089\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gui\u304b\u3089\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2495-3173&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;その他&quot;&gt;その他&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt;  sshでlogin&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo pkg update&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo pkg install xe-guest-utilities&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo echo “xenguest_enable=YES” » /etc/rc.conf.local&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u305d\u306e\u4ed6&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u305d\u306e\u4ed6&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3174-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 10 Nov 2017 05:55:19 +0000</pubDate>
        </item>
    </channel>
</rss>
