2015年11月8日更新
TLS1.2に対応させる
現在はECDHE対応していないため無理ですが、TLS 1.2対応なら可能です。
前提
- TLS 1.2以上に対応すること
- 特定の暗号方式に対応すること
- サーバ証明書がSHA256以上の署名を持っていること
- サーバ証明書が2048bit以上のRSA鍵または256bit以上のECC鍵を持っていること
TLS 1.2と許可された暗号方式に対応
ソースコード更新
9legacyのパッチを当てる。
- libsec-tlshand-nossl3
- libsec-x509-sha256rsa
- tls-devtls12
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256に対応する形となる。
ビルド
- カーネル(devtls)
- libsec
- libsecを使ったコマンド類
カーネルは対応が終われば、hashalgsにsha256が追加される。 encalgsはデフォルトのまま。
# cat '#a'/tls/hashalgs
clear md5 sha1 sha256
# cat '#a'/tls/encalgs
clear rc4_128 3des_ede_cbc aes_128_cbc aes_256_cbc
libsec.hをincludeしているコマンド、 cpu, hget, import, tlsclient等いっぱいあるなあ... とりあえずはhget, httpd, smtpd, tlssrv, tlsclientが対応していればいいか。
# cd /sys/src/libsec
# mk (/$objtype/lib/libsec.aが更新される)
# cd /sys/src/cmd
# mk hget.install
# cd /sys/src/cmd/ip/httpd
# mk install
証明書の更新
SHA256以上の署名を持った2048bitのRSA鍵持ち証明書を作る。