車輪の再発明でもいいじゃない

フリーランスエンジニアがいろいろ試したりすること

Ubuntu に独自認証局を信頼させる

最近は Mac で開発が主流となってきたせいか、環境構築って Mac 準拠が多いです。

Windows(WSL) 使いには肩身が狭い時代となってきましたね。 個人的にはこだわりないのでどっちでもいいのですが。むしろ Linux ノートとかでよくね?とか思います。

さて、今回は 表題の通りで、cacert.pem ファイルをもらったのでこいつを信頼させる必要があります。手順は以下の通り。Mac だと全部 GUI で すむのでその辺は楽ですね。

  1. pem から crt ファイルを生成する
  2. crt ファイルを特定の場所に配置し、config を書きかえる
  3. config を再読み込みさせる

さて、やっていきましょう。

1. pem から crt ファイルを生成する

$ openssl x509 -outform der -in cacert.pem -out cacert.crt

2. crt ファイルを特定の場所に配置し、config を書きかえる

$ sudo mkdir /usr/share/ca-certificates/project-X
$ sudo cp cacert.crt  /usr/share/ca-certificates/project-X/

/usr/share/ca-certificates/ には mozila のフォルダがありますが、こいつには手を出しません。

mozila の設定がすでに記載されているので、末尾に今回のものを追加しましょう。 /usr/share/ca-certificates/ からの相対パスで記載します。

$ sudo vim /etc/ca-certificates.conf

・・・省略・・・
mozilla/certSIGN_ROOT_CA.crt
mozilla/ePKI_Root_Certification_Authority.crt
mozilla/thawte_Primary_Root_CA.crt
mozilla/thawte_Primary_Root_CA_-_G2.crt
mozilla/thawte_Primary_Root_CA_-_G3.crt

# 以下を今回追加する
project-X/cacert.crt

3. config を再読み込みさせる

$ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping cacert.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Adding debian:cacert.pem
done.
done.

1 added となっているので念のため追加した証明書にパスが張られているか確認します

$ ll /etc/ssl/certs/ | grep project
lrwxrwxrwx 1 root     48  7月 20 16:52 cacert.pem -> /usr/share/ca-certificates/project-X/cacert.crt*

以上です。楽しい開発ライフを

めざせ!配当金お小遣い生活

老後2000万円問題[1]が出されて久しいですが、それに踊らされて投資再開しました。(ちまちま以前からやっていたんですが、薄給でボーナスくらいしか投資していなかったです)

毎月1万円利益をってことを目標に半年ほどやっていますが、6月に初めて達成です! f:id:takimotoTurkey:20200706120455p:plain

といっても株式配当込みなんで、来月からまたよさそうな金融商品を探す旅は続きます。

まずは、お小遣い分は投資で稼げればがひとまずの目標です

[1] 本当に足りない?老後2000万円問題の真相と今からできる資産形成 https://www.chibabank.co.jp/blog/after-retirement-20million-yen.html

docker-comporse + Mysql で my.conf が読み込めない!

コンテナ・・・それは「OSレベルの仮想化により、プリケーションを開発・実行環境から隔離」[1]=ホストマシンの差異をなくしてどんな環境でも一緒だよ

と思っていたんですが、そうではなかったって話です。 そもそも Docker 自体がホストマシンの影響を受けて動作が変わることがあるんですね。

image: mysql:5.6.41
volumes:
      - ./developData/conf.d/my.conf:/etc/mysql/conf.d/my.conf

例えば上記みたいに書いていると、理想は mysqlが起動時にmy.conf を読んで設定が反映されることですが、されません。 理由は以下2つがたまたま合致してしまうのです

  • mysql だと 777 のファイルは読み込んでくれない
  • Windows では docker-comporse の volume で設定したファイルのパーミションは777となる

Macでほかの人の作成した comporse 動かした際にこの件ではまりまくりました。 うーん。と悩んだ際にたまたまログ見てみると以下のログが出ていて、それっぽい記事[2]を見つけました

WSL で ubuntu 動かしてその上でやっていたので Windows 環境って認識がなかったのです。 いやー。WSL + 仮想環境って難しい

Warning: World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored

追記

  • 2020/7/30
    • これはたぶんWinとフォルダ共有しているのが原因かもです。完全に docker 内に閉じていれば発生しない問題かも

[1] Docker https://ja.wikipedia.org/wiki/Docker

[2] Windows + docker-compose + mysql で文字化けさせない方法 https://qiita.com/waterada/items/1dbf6a977611e0e8f5c8

WSL + Xserver でうまく表示できないときに試す方法

WSL + GUI を使おうと思ったら、以下のようになってなんじゃらほい?ってなりましたが解決方法わかったので記載しておきます

xrdb: Can't open display '0'
xfce4-session: Cannot open display: .
  1. ディスプレイ番号が正しいか確認
    f:id:takimotoTurkey:20200624111701p:plain
    ディスプレイ番号

ナビゲーションバーにディスプレイ番号が表示されるのでエラー表示の番号と一致しているか確認する

  1. 接続先が正しいか確認
    f:id:takimotoTurkey:20200624112258p:plain
    接続先(IP)確認

・・・私の場合、これでした。以下で GUI ができることを確認

 DISPLAY=192.168.x.x:0.0 xeyes

以前は、localhostで動いたんですが何が原因で変わったのかよくわかりません。 また、WSL 上からホストのIPの取り方がわからないので自動化も課題ですね

個人事業主は辛いよ【賃貸編】

個人事業主は信頼性がないとかよく聞かれますが、初めてその状態を体験しました。

個人事業主として2年目、諸般の事情で引っ越しのために入居審査をしました。

保証会社さんと大家さんの審査があったのですが。。。

保証会社さん -> OK!

大家さん(管理会社) -> NG!

「まじかよ!」って感じです。

不動産屋さんに詳しく聞いてみたところ、「事業をしていることを証明するHPみたいなものがないから」らしいです。確定申告の控えではだめですか?とか聞いてもらったんですが。。。残念ながら

エージェントやら知り合いからのつてで業務委託を収入源として暮らしているものとしては「HPなんか意味ないや」と思うのですが、価値観の違いですかね。

別の物件で申し込んでいるのでそっちはうまくいきますように