macOS(10.12 Sierra以降)でログを見る

概要

`log`を使う。

リアルタイムで見るなら
`log stream`
過去のログを検索するなら
`log show`

cron

$ log stream --info --predicate 'process == "cron"'
$ log show --info --predicate 'process == "cron"' --start '2017-05-25'

postfix

$ log stream --info --predicate '(process == "smtp") || (process == "smtpd")'
$ log show --info --predicate '(process == "smtp") || (process == "smtpd")' --start '2017-05-25'

指定するprocess名が分からない場合は

$ log show --info --start '2017-11-08' | grep 'xxx'

などとして、process名の当たりをつけて、predicateに指定するといいだろう。

ブラウザの全画面表示

Windows

  • IE, Chrome
    F11
  • Edge
    Shift + Win + Enter

Mac

  • Safari, Chrome
    Ctrl + Command + F
    タブやアドレスバー等のツールバーが表示される場合は、メニューの「全画面表示でツールバーを常に表示する」をオフにする。(または Shift + Command + F)
  • Firefox
    アドレスバーを非表示にできないようだ。

iOS, Android

  • HTMLのmetaタグで、apple-mobile-web-app-capable を yes に設定しておく。
    <meta name="apple-mobile-web-app-capable" content="yes" />
    
  • ページを「ホーム画面に追加」してホーム画面のアイコンから開く。

スワップ領域の作成

# dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 レコード入力
2048+0 レコード出力
2147483648 バイト (2.1 GB) コピーされました、 22.799 秒、 94.2 MB/秒
# mkswap /swapfile
スワップ空間バージョン1を設定します、サイズ = 2097148 KiB
ラベルはありません, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# swapon /swapfile
swapon: /swapfile: 安全でない権限 0644 を持ちます。 0600 がお勧めです。
# chmod 600 /swapfile

/etc/fstab

/swapfile none swap defaults 0 0

確認

# swapon -s
Filename				Type		Size	Used	Priority
/swapfile                              	file	2097148	0	-1

スワップ領域のサイズを変更する場合は、

# swapoff /swapfile

してから /swapfile を削除し、上記手順で再作成すればよい。

subjectAltNameが設定されていない証明書はChromeで NET::ERR_CERT_COMMON_NAME_INVALID エラー

開発環境用に自己署名のSSL証明書を使っているサイトにChromeでアクセスしたら、
「この接続ではプライバシーが保護されません NET::ERR_CERT_COMMON_NAME_INVALID」というエラーになった。

自己署名証明書(Self-signed certificate)だが、クライアント側はMacではキーチェーンアクセスに登録してx.509基本ポリシーを「常に信頼」にしているし、Windowsでは「コンピューター証明書の管理」で「信頼されたルート証明機関」に登録してある。
CN(Common Name)とアクセスしているホスト名も一致している。

Chrome以外のブラウザでは問題ない。
Chromeでも問題なくアクセスできていたが、急にエラーになるようになった。

エラーメッセージに「このサーバーのセキュリティ証明書は[missing_subjectAltName]から発行されています。」とあるので、証明書にsubjectAltNameが設定されていないことが関係しているようだ。

原因

Chrome 58 以降で、ドメイン名と証明書の照合にcommonNameが使われず、subjectAlternativeNameのみを使用するようになった。(ただし、Chrome 65 までは、EnableCommonNameFallbackForLocalAnchorsを設定すればcommonNameを使用できるらしい。)

https://support.google.com/chrome/a/answer/7391219?hl=en

解決方法

subjectAltNameを設定した自己署名証明書を作成する

openssl.cnfをコピーしたファイルにsubjectAltNameを設定して証明書作成時に指定する。

  1. openssl.cnfをコピー(下記はRedHat系の例。openssl.cnfの場所は環境によって読み替える。Ubuntuは/etc/ssl/openssl.cnf、MacPortsなら/opt/local/etc/openssl/openssl.cnf)
    $ cp /etc/pki/tls/openssl.cnf my-server.example.com.cnf
    
  2. コピーした設定ファイルのreqセクションのx509_extensionsがv3_caになっているので、v3_caセクションにsubjectAltNameを追加すればよさそうだ。
    $ vi my-server.example.com.cnf
    
    [ req ]
    ...
    x509_extensions = v3_ca # The extentions to add to the self signed cert
    ...
    

    v3_caセクションにsubjectAltNameを設定

    [ v3_ca ]
    ...
    subjectAltName=DNS.1:my-server.example.com
    ...
    

    subjectAltNameを複数設定することもできる。

    subjectAltName=DNS.1:my-server.example.com,DNS.2:my-server2.example.com
    

    詳しくは、`man 5 x509v3_config` を参照。

  3. 秘密鍵の作成
    $ openssl genrsa -out my-server.example.com.key 2048
    
  4. 証明書の作成(-configに作成した設定ファイルを指定する
    $ openssl req -new -x509 -days 36500 -sha256 -config my-server.example.com.cnf -key my-server.example.com.key -out my-server.example.com.crt