Let's encrypt の証明書を certbot を使って更新する

Posted 13 days ago by yoosee.
  ssl nginx security letsencrypt

Certbot での let’s encrypt 導入

このblogは Let’s Encrypt での HTTPS 化をしているが、去年3月に書いたものから手順というかツールが変わっていた。

Let’s Encrypt + Nginx の導入 - W3er

これまでは Let’s Encrypt から提供された shell script を renew の際に実行していたが、1か月前の実行からエラーで正常更新されなくなっていた。最近の推奨は Certbot らしい。

Certbot

導入自体は Debian なら通常のレポジトリにあるので apt で入れるだけ。

$ sudo apt install certbot 

既に以前に Let’s Encrypt を導入している環境ではあるが、certbot での更新は初めてなので初期化のコマンドを実行。nginx など port 443 を LISTEN しているプログラムは Let’s Encrypt 側からの確認を行うために一時停止が必要。要は当該ドメインの当該Portを管理する権限がこのサーバにあることを確認するためだろうが、この辺の条件は以前と一緒。

% sudo certbot certonly --standalone -d blog.yoosee.net

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for blog.yoosee.net
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/blog.yoosee.net/fullchain.pem. Your cert will
   expire on 2017-10-09. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

cronの定期更新スクリプト /etc/cron.monthly/letsencrypt も変えておく

#!/bin/sh

/etc/init.d/nginx stop
certbot renew 
/etc/init.d/nginx start

nginx 側の設定

fullchain.pem など必要なファイルの場所は以前のスクリプトと変わっていなかったので nginx などの設定を変える必要はなかった。/etc/nginx/sites-available/blog.yoosee.net.conf は以前と変えておらず以下の通り。

server {
        listen 443; # listen for ipv4
        server_name blog.yoosee.net;
        access_log /var/log/nginx/blog.yoosee.net/access.log;
        error_log /var/log/nginx/blog.yoosee.net/error.log;

        root /home/www/blog.yoosee.net/textfi/public;

        client_max_body_size 100m;
        error_page 404 /404.html;
        error_page 500 502 503 504 /500.html;
        try_files $uri/index.html $uri @unicorn;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/blog.yoosee.net/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/blog.yoosee.net/privkey.pem;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;

        location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
                expires 30d;
        }

        location @unicorn {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Host $http_host;
                proxy_set_header X-Forward-Proto https;
                proxy_set_header host $host;
                proxy_redirect off;
                proxy_pass http://unicorn;
        }
}

これで SSL Server Test は スコアA が取れている。CAAは残念ながら使っているDNSホスティングではまだ対応していなかったので未対応。

SSL Server Test: blog.yoosee.net (Powered by Qualys SSL Labs)

SSL Server Test

 

Windows 10 のキーマップを日本語配列から英語配列に変更して使う

Posted 13 days ago by yoosee.
  laptop windows10

日本でラップトップを買うとどうしてもキーボードの配列が日本語のものに制約されがちだ。20年ほど英語配列キーボードに馴染んだ身としては今更日本語配列 jp106 を使うのはストレスがたまるので、キートップを無視して配列を en101 に変更をしたのだが思ったより手間取った。ついでにEmacs風キーバインドのためにkeyhacを導入した。

なお以下の内容はレジストリをいじったりなんだりしているので当然のごとく無保証で、なにかあった際に自力で復旧できる人以外にはお勧めしないし、そもそもキートップの印字とキー入力がずれるということなので、それを理解してもやりたい人は少数だろうが、いないことはなさそうなので備忘録を兼ねて記する。

Keyboard


キーマップを日本語配列から英語配列に変更

これは結構苦戦したのだけど、結果としては下記のレジストリを変更することで MSIME(日本語入力) 利用時も英語配列での入力が可能になった。

Keyboard Layouts\00000411 レジストリの変更

端的には Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411Layout Filekbdus.dll に変更することで英語配列での入力ができるようになった。レジストリ変更後にはログアウト⇒ログインないし再起動が必要。これを .reg ファイルとして切り出したものは以下。当該レジストリをバックアップしてから作業することをお勧めする。

Keyboard Layouts は言語ごとのキーマップ定義が登録されているレジストリで00000411が日本語向けということになるわけだが、その配列定義を強制的に英語キーボードのドライバーに書き換えるということをしていることになる。

うまくいかなかった方法: Windows 10 の言語設定からの変更と i804prt\Parameters レジストリの値、またキーボードドライバの入れ替え

下記はうまくいかなかった方法。参考までに。

標準的な方法として、設定 > 時刻と言語 > 地域と言語 > 日本語 > オプション から ハードウェアキーボードレイアウト を 英語キーボード(101/102) に変更というやり方があるが、これはうまくいかず、入力時のキーボードレイアウトには何の影響もなく日本語配列のままだった。

また同設定から English を言語追加してキーボードレイアウトを US QWERTY にした際には、Win+Space で入力をENGに切り替えた際には英語配列(Shift+2の入力が@になる)になったのだが、言語モードを JPN にすると日本語配列(Shift+2 の入力が “) に戻ってしまって英語配列にならなかった。

この時に HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters の LayerDriver JPN などは上記設定で既に kbd101.dll になっているのだが、これは効かなかったようだ。

他の方法としてググって出てきたキーボードのデバイスドライバを英語キーボードのものに入れ替える方法は、そもそも HID Keyboard Devices 以外の例えば English 101/102 PS/2 Keyboard などを選ぶとドライバ更新がエラーになってキーボード操作自体を受け付けなくなるなどの問題が出たのでうまくいかなかった。外付けのキーボードならうまくいくのかもしれない。

CAPSキーをControlキーに置き換え

特に Emacs keybind を使うなら必須とも言える変更だが、定番なのでどこにでも情報がある。

ASCII.jp:CtrlとCapsを入れ替え! Windowsのキー配列をカスタマイズ (½)|深厚のWindows使いこなしテクニック

自分用には .reg ファイルとしてあらかじめ作ってあるので、ダブルクリックで読み込めば設定は終わり。

KeyhacでキーバインドをEmacs風に変更

しばらく前までは xkeymacs を使っていたのだけど、Windows 7 ですら動きが怪しかったのが Windows 10 ではまともに動作しなくなったので keyhac に乗り換えた。

Keyhac - Pythonによる柔軟なキーカスタマイズツール - craftware

あわせて VC++ Runtime を入れる。上記サイトのリンク先は無くなっていたのだけど、これがたぶん最新版?

Download Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3 RC from Official Microsoft Download Center

Emacs Keybind の設定はこの辺りをほぼそのまま使いつつ、使わないキーバインドだけコメントアウトしておく。ちょっと冗長なので自分で書き直したい気分ではあるが、それはおいおい。

Windows の操作を emacs のキーバインドで行うための設定 (Keyhac版) - NTEmacs @ ウィキ - アットウィキ

これで a の左がコントロールキーでキーボード配列は英語配列でショートカット操作は Emacs 準拠という個人的に快適な状況に持っていくことができた。

余談だがこれをやるとキートップ印字と入力文字が特に記号入力で不一致になるのは前述の通りで、誰かにパソコンをちょっと貸してパスワード入力をしてもらうなどの場合に結構はまったりするのはご愛敬である。

 

米国が障害者に優しい最大の理由

Posted 26 days ago by yoosee.
  usa

米国に長いこと住んでいたが、確かに日本に比べたら障害者、特に歩行困難者向けインフラの対応は日本に比べたら遥かに行き届いている。街を歩けば車椅子で移動している人はごく普通に見かけるし、車椅子の店員もさほど珍しくない。駐車場は一番近い場所が障害者向けに確保されるよう法律で定められてもいるし、エレベーターやスロープなどの設備も確実に利便性の高い場所に整備されている。

Parking by Disabled Sign

この日米の差はなにから生まれているだろうか。もちろん人造国家アメリカの是として平等と正義を奉じる国であるからこそという理由や、法制度の整備、車社会であること、単純に土地が広いからこそできるインフラの整備も少なくないが、あくまで個人的な意見として言えば最大のポイントはデブが多いからである。

なんの冗談かと思われる諸兄も多いかと思うが極めて真面目に書いている。

デブと言っても恐らく日本人が考えるデブとはスケールが違う。100kg 超えなど当たり前、普通の日本人の約3倍の体積を超える人も少なくない。重みで椅子を破壊する、飛行機のシートから左右がはみ出る、それが米国のデブである。そんな米国の肥満率は38%を超え(日本は約4%)、BMI 25 以上の過体重をカウントすると6割に達する。

デブが多いとなにが起こるのか。端的な答えは高い確率でデブは膝を壊すのだ。

膝を壊して歩くのが困難になる人が多いこの国では、車椅子や電動カートで移動する人はそこらじゅうにいるし、明日は我が身という人が山ほどいる。つまり歩行障害は誰にでも起こる問題と認識されているのだ。

全く歩けないわけではなくても、足が悪くて長時間歩けないので一人乗り電動カートなどの歩行補助具を使っている人は大変多い。ディズニーワールドなどに行っても車椅子やカートのお客さんはたくさんいるし、それを前提としたインフラが用意されている。これによって単に障害で足が悪い人だけでなく、加齢で歩行が困難になったお年寄りもインフラの利益を享受できるようになっている。逆に言えば、足が悪い人向けにインフラを用意しなければ大勢の客を逃すのである。

そんなわけでデブが多いこの国では障害者の中でも歩行の障害は身近な社会の一部であり明日の我が身でもある。決して褒められた話ではないのだが、結局のところどれだけ「障害者の存在が社会にとってあたりまえ」であるかが社会のあり方を決めている好例といえるのではないだろうか。

 

長い米国生活を終えて日本に戻ってきて感じたこと

Posted 28 days ago by yoosee.
  japan usa life

想像していたよりはかなり長い期間を米国はフロリダで過ごし、最近になってようやく日本に戻って暮らし始めたので、初心を忘れないうちに日本生活の印象というものを書き留めておく。まあ簡単に書けば、いい国だよねやっぱり。

Japan

何を食べてもうまい

うまいよね。出張でちょくちょく帰ってきては暴飲暴食を繰り返していて食べたいものを食べつくすために1日5食食べるスケジュールを立てて2週間で3kg太って帰った頃もあるくらいなので外食がうまいのは知ってたけど、その辺のふつうのスーパーで買ったワンパック500円の刺し身だの惣菜コーナーの揚げ物だの煮物だののレベルでもうまい。ほんとにうまい。コンビニで買ったおにぎりですらうまい。唐揚げと明太子は悪魔の罠だと思う。やばい。

日本酒がうまい

うまいよね。世界一うまい酒だと思う。米国にいるとワインは安いのでさんざん飲みたおしたし週末に安いスパークリングワインをあけるのは素晴らしい楽しみだったし米国の地ビールの豊富さと旨さもあれは代えがたいものがあったけど、なんというか日本にいて刺し身や焼き魚をつまみに日本酒を飲むのには勝てないなあと。あくまで個人的嗜好だけどな。なお米国も最近は米国醸造の日本酒というのが出回り始めててそこそこ飲める味になってきてたが、地酒の多彩さは流石にどうにもならん。

野菜がうまい

うまいよね。米国にいるとそもそも野菜を食べるのなんてサラダか根菜くらいしかなくて、そのサラダも肉やチーズやベーコンがたっぷりのっていて野菜だか肉だか分からんものだったけど、よく考えるとあんなに野菜を取らずによく生きてたなあと思う。日本で食事をするとサラダに限らずおひたしだの煮物だの炒め物だの野菜が主役で野菜を食べるための料理が豊富でほんと素晴らしくておいしい。

菓子がうまい

うまいんだよ。とくに甘いものの旨さが素晴らしすぎる。Henri Charpentier のショートケーキとかモロゾフのプリンとか吉兆庵の陸乃宝珠とか福砂屋のカステラとかは言うに及ばず、コンビニで売ってる数百円のデザートですら至福の味である。1ダース100円のチョコレートすらうまい。これはまじ太るので危ない。

店員が丁寧

あそこまで丁寧なのが必要なのかと言われるとどうなんだろうとは思うけど、別に悪いことではないし気分は良い。とは言え流石に朱肉をひとつ買っただけで店から出るまでずっと頭を下げておじぎを続けるのはやりすぎだと思うんだ、某百貨店内の文房具屋さん…

安全で安心

いい年のおっさんだからというのもあるけど夜道を一人で歩いていてもそうそう危ない目に合う気がしない安心感。ちいさな子供が一人で学校に歩いていける安心感。電車で眠ってしまってもそうそう財布を抜かれたりしない安心感。

米国で住んでいた地域はかなり治安のよいまちだったし、米国生活も長かったので危険の避けかたも分かっていたつもりだけど、外国籍で母国外に住むというのは生活の端々に違いとリスクを抱え続けるということであって、日本の生活に戻ってから「ああ米国にいた頃は生活の細かいレベルで気を張っていたしストレスがあったんだな」ということを自覚した。

でも通勤電車だけはダメだ

あれはいかん。別に車通勤じゃなく電車で立っているとか歩くとかそういうのはいい。いかんのはあの混雑だ。あれは人間の尊厳を損ない日本人の幸福度をみるみる下げ生活者と地域の断絶を招き過程を崩壊させ日本人から寛容の心を奪う。まあ、引っ越すなりピークタイムを避けた通勤をすればいいので個人の選択ができるだけマシな問題ではあるんだけど、とは言えなんとかならんのかね。

などと最後に愚痴は書いたものの、全般的には食い物が美味しくて人当たりがよくて命の危険を感じずに生活できるというのはやっぱり素晴らしい国だと思うのですよ。ほんと。

 

Surface book レビュー - 高級感と個性にあふれる次世代ラップトップ

Posted about 2 months ago by yoosee.
  microsoft laptop

Surface book レビュー

仕事用に Surface book を使い始めたので軽くレビューする。シンプルかつシルバーを基軸にしたデザインは剛性も高く高級感があり、見た目には周りの人からの評判もいい。重量が1.5㎏強と今どきのモバイルラップトップとしては重いが、タブレット部の分離やペンの利用などでユースケースが色々とあり、使い勝手は個性的で面白い。

Surface book

包括的なレビューは既に様々なサイトにあるだろうから、ここでは個人的に気に入った点や気になった問題などを記載しておく。全般的には個性含めて満足はしている。

デザイン・キーボード・インターフェイス

本体はほぼすべてがシルバーの金属仕立てですっきりしたデザインだ。キーボードは十分に広いキーピッチとラップトップにしてはそこそこのキーストロークがあり、キータイプでは特にストレスを感じない。英語キーボードモデルがないのが個人的には辛いところだが。なお本体はディスプレイ側なので、CPU利用率が上がってもキーボードやキーレスとは熱くならない。金属製なこともあってむしろ常にひんやりしている。

外部インターフェイスはドックアダプタにもなるマグネット着式の電源コネクタ、USB x2、SDスロット、mini DisplayPort という構成。新モデルの構成を見ても何故か USB-C / Thunderbold 3 は搭載されていない。Microsoft のポリシーなのだろうか。

性能

GPU非搭載で Intel i5 の機種を買ったが、オフィス仕事に使う分には特に問題は感じない。とは言え SSD 128GB と RAM 8GB は仮想マシンを走らせたりすると足りないので、GPUの有無を含めて上位構成機種を買ったほうがストレスは無いだろう。しかしこの手のラップトップは最上位構成に近いものでないとRAM 16GB搭載がないというのが辛いところ。CPUよりRAMが欲しい。

サイズと重量

大きな特徴のひとつである、分離可能なディスプレイによるタブレットモード。ディスプレイ側が本体であり、キーボード側は追加バッテリーや各種外部端子、モデルによってGPUが搭載されているのみ。そのせいもあって重量バランスは普通のラップトップとは違い、ディスプレイ側がかなり重い。本体サイズと重量は以下。

  • タブレットのみ
    • 重量:726g
    • 寸法:312.3×220.2×7.7mm
  • キーボード一体時
    • 重量:1,515g(GPUなし)/1,579g(GPUあり)
    • 寸法:312.3×232.1×13~22.8mm

重量1.5kgは今どきのモバイルラップトップとしては少々重く、サイズも13インチを超える程度に大きめで、後述するようにヒンジ部が膨らんでいるので多少かさばるため、持ち歩きがメインならば別の選択肢もあるかとは思う。

キーボード側とディスプレイ側が大体同じくらいの重さになっていて、普通のラップトップとは重量バランスがかなり違う。キーレスト部分を持ち上げようとすると、おっ、と思うくらい重く感じる。とはいえ膝の上において使うときなどでも重量バランスが画面側に倒れるなどはないので、使い勝手自体は普通。

タブレットのみだと 7.7㎜ なのでまあまあの薄さだが、Surface book の謎デザインである丸く膨らんだヒンジ部があるおかげで、畳んだ時のサイズが薄い側は13㎜なのに厚いヒンジ側は22.8㎜もある。オフィスの中を持って歩く程度なら丸くて厚みのあるヒンジはむしろ持ちやすいが、外出時の持ち歩きには少々気になる重さとデザインではある。

ディスプレイとタブレットモードとSurface Pen

ディスプレイ解像度は3000x2000と、高解像度だがラップトップとしては変則的。3:2のアスペクト比はA4など印刷物の √2:1 ~ 2.82:2 に近いので、書類などを表示させると無駄な余白が少ない分だけ読みやすい。当然ながらタッチスクリーン。本体からの切り離しはタスクバー上のアイコンかキーボードの専用ボタン長押しで行う。着脱は容易ながら、取り付けた際のぐらつきや不安定感は感じない。

手書き入力やスケッチのために付属する Surface Pen は磁石で本体の横に貼り付けておくことができるので、ペンと一緒に手軽に持ち歩いてふとした思いつきを手書きできるのはなかなか快適だ。もっともそれなりに強力とは言え磁石なので外出中などに油断すると外れて無くしそうな不安が少々残る。

画面を切り離したタブレット利用は、画面を手元に持って資料を読んだり、資料を読みながらペンで手書きの注釈を入れたり、ペンで落書きをしたりと閲覧やペン書きをするときに使いやすい。ノートを手元に持って読み書きする感じになる。ペンの書き心地も描画の追従がそこそこ早いので特にストレスは感じないし、ペンのノックを2度クリックするとメモモードが立ち上がるなど、手書きの気軽さをうまく取り入れていると思う。

なお仕事用なので試していないが、画面が大きめなのとアスペクト比が書籍向きなので、Kindle などで本や雑誌を読んだりするのにも向きそうだ。

Surface dock と外部機器との接続

デスクではSurface dockと繋げて使っており、DisplayPort 経由で外部ディスプレイのASUS PB287Qを繋ぎ、問題なく4K出力できている。USB経由でキーボードなども繋げている。

Surface dock and pen

Dock と本体の接続はマグネット付き端子をペタッと付けるだけなので簡単で、ケーブル一本の接続で電力と外部ディスプレイ、USBキーボードの接続まで完結するのはかなり便利。

Thunderbold 3ないしUSB-Cを搭載した機種でも同じようなことができるが、現状必須な電力ワンケーブルのみで全ての接続が終わる仕組みは利便性の点では素晴らしいと思う。まあ過去のDellラップトップでもガチャっとはめ込む背面ドックで実現していたことではあるが、マグネット接続の電源ケーブルだけでOKなのはそれと比べても手軽感があってよい。

顔認識

Surface book以前にWindowsの機能だと思うが、セットアップ時にフェイスカメラで顔写真を撮影することで顔認識によるログインができる。PINやパスワードを打ち込まずに画面の前に顔があるだけでログインされるのはストレスなく快適だが、ただこれ写真などで代替できてしまったりはしないのだろうか。流石にそこまで脆弱ではないと信じたいが。

癖のある点

タブレット側にインターフェイスがほとんどない

切り離したタブレット側にはUSBやDisplayなどの拡張スロットは全くない。電源ボタンとボリュームキーのみ。外部機器とつなぐ際はBluetooth接続のものを選べば切り離し時も継続して使うことができるわけだが、その他の、例えば外部ディスプレイやUSBキーボードにつなぐなどができない。

ただキーボードとタブレットの接続端子は充電・Dock接続端子と同一なので、Dockを用意しておけばUSBやDispkayポートへ拡張することはできる。タブレットとのケーブル接続は持ち上げたりすると不安定なのでどこかにおいて使う感じになると思う。Dockも安くないので手軽に使えるソリューションかといわれると微妙だが、外部ディスプレイの利用を含めてタブレット部のみを持ち歩いた際でも選択肢があるのは良い。

SDカードスロットでディスク容量を拡張した場合の注意点

SSD搭載ラップトップによくあることとしてディスク容量が不足しがちなので、日常使わないSDカードスロットに BaseQi iSDA 高精度 アルミニウム製 MicroSD カード アダプター (Microsoft Surface book 13.5") を入れて microSD で容量拡大してみたが、このSDスロットはキーボード側にあるため、タブレット分離させた際に本体から取り残される。

単にそうした使い方が想定されていないだけなのだろうが、そうして使ってしまっている身からするとファイルの置き方に少し頭を使うことになるのがちょっと厄介ではある。

キーレストのエッジに磁石が入っている

この形状で上蓋をきちんと閉じた状態にするための都合なのだと思うが、キーレストのエッジ部分に磁石が入っているようだ。だからなんだという話なのだが、普段使っている Pebble Time Round のミラネーゼループ腕時計バンド の磁石部分がくっつくのが地味に厄介ではある。

利用中のトラブルと解決

Dock経由のDisplayPort接続で画面が表示されない問題がでた

利用開始当初、Dock経由のディスプレイ接続時に画面がディスプレイ側に出力されない事が多々ありストレスをためていた。ディスプレイ自体は対応機種だったので何が悪いのかと思ったが、公式の Surface ドックおよび Surface ドッキング ステーションのトラブルシューティング に従い Microsoft Surface Dock Updater (Surface) からDock自体のファームウェアをアップデートしたら問題の発生はかなり軽減した。

Bluetooth Mouseを接続・切断して使っていたら動かなくなった

席にいるときは Bluetooth Mouse を使っており、打ち合わせや外出で離席して戻ってくるとマウスが全く反応しなくなりBluetoothデバイスを削除して再ペアリングしてもマウスとして認識されないという問題が出た。結局これはどうやらSurfaceではなくWindows 10の高速スタートアップ機能の一般的な問題だったらしく、当該機能を無効化したら解決した。

このあたりの問題はそのままなら相当ストレスになっていたと思うが無事に解決できたので現状特にそうした問題はなく使えているし、使い勝手自体にはなかなか満足している。自宅で使っているXPS13が正統派モバイルラップトップの一つの完成形だとすれば、Surface book は次世代ラップトップへの可能性を示しているのではないかと思う。