puppeteer で自動実行してたら、ずっとエラーになるのでおかしいなと思って調べた。 自分の環境では動くけどサーバーで自動実行したら動かない。 throw new Error(`Could not find Chromium (rev. ${this.puppeteer.browserRevision}). This can occur if ei…
rclone で sftpに接続しようとしたらエラーになる。 NewFs: couldn't connect SSH: ssh: handshake failed: ssh: unable to authenticate, 原因がわからずパニックになるが、sshはRSA鍵をデフォルトで無効化したことを思い出した。多分これだろうと予想を立…
apt-cacher を443 でnginxの後ろに置こうとした。 動かない。 ログを見た。 10.10.1.240 - - [17/Mar/2023:17:45:20 +0900] "CONNECT esm.ubuntu.com:443 HTTP/1.1" 400 166 "-" "-" 10.10.1.240 - - [17/Mar/2023:17:45:20 +0900] "CONNECT esm.ubuntu.com:…
ubuntu の apt で入れた sslh が微妙だった件。 ubuntu の apt で入れた sslh にいくつか問題があった。どのようにめんどくさいかというと、設定の追加がほぼ不可能なのだ。 /etc/init.d/sslh/ をベースにしていて、 init.dが/etc/default/sslh を sourceし…
プロセスグループをKILLしたい。 プロセスからfork したプロセスから forkしたプロセス、子プロセス・孫プロセスを除去したい。 プロセスグループの確認 ps -ejH で PGIDとSIDを確認する ps -ejH | PID PGID SID TTY TIME CMD 19666 19666 19666 ? 00:00:00 …
OpenWrtはホットプラグで「〇〇したとき」に任意のスクリプトを実行できる。 interface(iface)で、接続時に〇〇するとかできる。 Firewallが追加されたときに、なにかしたいと思ったが、公式サイトに記述がない。 イベントを調べた。 mkdir /etc/hotplug.d/f…
curlは 接続に成功したら exit code == 0 である。 接続に成功したら、404・500でも 結果は 0 になる。 curl -s http://example.tld ; echo $? httpステータスコードを検証する 接続に成功し、HTTP取得に成功したときだけ何かをしたい。 curl --fail -…
ファイルを空っぽにしたい。 dhcp leases とか log とかファイルを空っぽにしたい事があると思います。 rm && touch 単純に考えると、rm して touch ですが。パーミッションが初期化されるので面倒です。 rm fileA && touch fileA 空文字を書き出す。(リダ…
Let'Encrypt発行の証明書を使って中間CAを作るとどうなるのか。 Let'Encrypt発行の証明書は、次の用途に使える。 openssl x509 -purpose -noout < cert.pem Certificate purposes: SSL client : Yes SSL client CA : No SSL server : Yes SSL server CA : No…
ALPNとはなんなのか ALPN=Application-Layer Protocol Negotiation アプリケーション側からのプロトコル要求です。 nginx では、これをサポートする HTTPサーバーがALPNで応答しているか確認する echo | openssl s_client -alpn h2 -connect 192.168.1.1:443…
OpenWrtでSSLHをしてHTTPS/TLSを443共有する TCP443ポートをSSLHで再利用する。OpenWrtで行う。 インストール opkg install sslh uci show sslh TLS(https)/SSHLの転送先 uci set sslh.default.ssh='10.1.1.1:22' uci set sslh.default.tls='10.1.1.1:443' u…
sslh にはSNI機能があった nginx で捌いても良いんですが、sslhはnginxより設定がシンプルだ。 443ポートを直接リッスンするならsslhでリッスンして各種ポートに透過プロキシしたほうが再利用性が高くて良い。 443 ポートで、SNIで接続先を選定 特定のホスト…
特定の条件だけ経路を変えたい。 たとえば、通常のルーティングはすでにあるとして、特定PC(業務用)だけ経路を変えたい。 ルーティングはテーブルで 通常のルーティングは、ルーティングテーブルで行われる。ルーティングを書けばいい 特定のパケットだけG…
CAを作る(openssl.cnf ) MyCAという名前でRoot CA を作る。 mkdir MyCA cd MyCA 必要なディレクトリを作る。 mkdir ./newcerts mkdir ./requests touch index.txt echo 00 > serial echo 00 > crlnumber openssl.cnf を作る。 /etc/ssl/openssl.cnf から必要…
ネットを探してても時間が浪費するので、よく使いそうな機能をまとめておく オレオレ証明書を作る。 この記事に書いたこと オレオレ証明書を作る オレオレ証明書でAliceの証明書を発行する オレオレ証明書で認証基盤(認証局機能)を作る オレオレ認証局でAl…
プラグインテーマがmacOS用のアイコンを要求する Joplin のmacOS theme が macOSのアイコンを要求する。 このテーマファイルをいれたらアイコンがすべて豆腐になった。なんで豆腐?理由が知りたくて調べた。アイコンが豆腐の原因はフォントが不足でした。フ…
debian/ubuntu で、インストールを手動マークされる apt install をすると最初から入っていた。とかよくある 手動マークされた 次のように、「手動でインストールされた」(set to manually installed.)とメッセージが出てくる。 bsd-mailx は手動でインス…
開発用パスワード・キーの管理をしたい env.txt だとか .git/config とか .gitconfig とか、パスワードとAPIキーが散らばる。どこかに保存したい。 keyring コマンドで管理する。 linux には keyring コマンドがある。これを使うと機密な文字列をマスターパ…
Null合体演算子(Null Coalescing)と三項演算子の短縮形(Short-ternary )を使ってパニクったので整理。 この値を知りたい。 値 比較 結果 unset($a) $a[0] ?? null NULL $a = null $a[0] ?? null NULL $a = $a[0] ?? null NULL $a = ['x'] $a[0] ?? null '…
ヌーラボ・バックログのAPIにアクセスしたかった。 Nulabのドキュメントをみていて、BacklogのAPIライブラリを探したのですが。PHPでサクッと使えそうなのがなかった。 https://developer.nulab.com/ja/docs/backlog/libraries/#%E3%83%A9%E3%82%A4%E3%83%96…
ふと、他人の書いたPHPコードgithub で眺めていると、次のような記述に遭遇した。 list() と foreach で配列を変数に展開する。
Guzzle さんは、内部的に http_build_query を使っている。 そのため、次のようなリクエストのパラメタを渡すと。 $gz->request('GET' , [ 'name'=>['a','b','c']] ) 次のようなリクエストを作り出す。 ?name[0]=a&name[1]=b&name[2]=c これは、あらゆるHTTP…
php の配列はすべてが連想配列なので、連番に欠番が出る。 欠番を「除去」したいときは、array_values で欠番を除いて再度の採番をすればいいのだけど、「欠番」を「特定の値で埋めたい」ときにはどうすればいいか。 欠番を数字で埋める。 'a', 3=>'c', 4=>'…
二律背反の要求を実現したい。 WebAPIの無駄な呼び出し回数を少しでも減らしたい。回数を減らし、プログラム応答速度を上げたい。 ただ、コードの書き換えは極小にしたい。 この目的では、Generatorを使うのが、鉄板だと思うんですよね。 WEBを呼び出すコー…
trait を use するときに名前がかぶった。 同じ名前の関数・変数があって、名前が衝突してエラーになる。 対応するには、use を使うか、優先順位を変える。 名前の衝突する trait の例 次の例では say() が衝突してしまう。
送ったパケに対して、応答があったのかなかったのか。 ping -O 192.168.1.1 -o は次のようになっている。 -O report outstanding replies これは、BSD/macOSのping のタイムアウト表示に近くなるので好きな人はこっちのほうが好きだと思う。 1つずつ表示し…
WindowsのRDPを特定IPからに制限する とくになんてことのない、Windowのファイアウォールの設定。 ファイアウォールを構成してRDPを特定IPに限定する。 ローカルIP(接続される側・自分自身)のIPアドレスを指定する なぜなら、ネットワークカードが複数刺さ…
Windows でインストール済みのアプリケーションを一覧する Macでいうところの /Application に相当するのは、C:/Program Files なので MacでいうところのLaunchpad に相当する、アプリ一覧のWindows版です。 なぜ必要なのかというと、VsCode やChromeといっ…
bundle コマンドの使い方 bundle コマンドは apt で入れている前提 apt install ruby-bundler 初期化 フォルダを作る mkdir my-work cd my-work 初期化する bundle init パッケージの追加 bundle add struct bundle add pry パッケージの利用 / ソース作成 …
dnsプラグインを複数使いたい。 たとえば、次のような証明書を発行要求したいとする。 cert domain commonName example.tld subjectAltName DNS:example.tld, DNS:example.biz,DNS:second.tld ただし、DNSの管理先はそれぞれ別のDNSサーバになっているとする…