SSL

Dovecot 2.3

[華語, cmn-Hant-TW] 雖然說去年底 Dovecot 2.3 就推出了,不過一直都沒時間理他,最近比較有空就來用 FreeBSD ports 升級,然後就卡關了,還好問題都不難處理,首先是升級一定會遇到的外掛程式版本匹配問題 doveconf: Error: Couldn’t load plugin /usr/local/lib/dovecot/settings/libmanagesieve_login_settings.so: Module is for different ABI version 2.2.ABIv35(2.2.35) (we have 2.3.ABIv1(2.3.1)) 所有 dovecot-* 相關套件重編即可 再來要設定 dh.pem,細節可以看這篇說明,不過其實照錯誤訊息提示的方法來設定就可以了 (設定檔在 /usr/local/etc/dovecot/dovecot.conf) doveconf: Warning: please set ssl_dh=</usr/local/etc/dovecot/dh.pem doveconf: Warning: You…

openldap + ssl

[華語, cmn-Hant-TW] 基本上有了 Let’s Encrypt 之後,合格的 SSL 認證取得算是方便非常多,有些之前跳過檢查或是設定自簽 root 的處理方式都可以省掉了,不過有些東西還是要設定加上定時更新才會用的順暢 在 FreeBSD 上 security/ca_root_nss 這個 port 要先裝好,然後 /etc/ssl/cert.pem 就可以拿來用了,如果安裝時沒開啟這個連結的話,直接用 /usr/local/share/certs/ca-root-nss.crt 也是可以的,然後常用的一些套件就可以用這個 cert 了,例如帳號認證用的 net/nss-pam-ldapd,在 /usr/local/etc/nslcd.conf 裡面加上一行 tls_cacertfile /etc/ssl/cert.pem 的設定後就不會抱怨 ssl 是自簽的 (也就是 tls_reqcert allow 用不到了),其他的軟體,像是 php 之類直接吃 /usr/local/etc/openldap/ldap.conf 設定的也不難處理,直接加一行 TLS_CACERT /etc/ssl/cert.pem 就可以搞定,其他的設定也是類似這樣處理即可 當然了,因為 Let’s Encrypt 的認證時間只有幾個月,定期更新憑證是需要的,不然過期的話還是會吃一堆錯誤訊息的

OSX Open Directory 修復

[華語, cmn-Hant-TW] 有一台 Mac 跑 Server.app 提供一些簡單的服務,主要是 LDAP 帳號權限管理,某次升級之後就突然沒辦法登入了,不過因為網頁認證郵件之類的都還會動,所以也沒有特別在意,然後終於在 SSL 到期之後整個炸掉,所以只好開始找問題在哪,一開始以為是 SSL 的問題,想辦法簽一個新的結果發現 Open Directory 居然不吃新的 SSL,有人說是 SSL 需要 code signing 才吃,不過重點是關掉 SSL 應該還是要會動才是,因為其他用到的伺服器配合關 TLS 照樣可以連,看了好幾篇討論後來在這篇看到有人說要照這個說明跑一次 Rekerberize,試過之後果然可以,原來是之前的更新沒跑完整啊,難怪帳號明明就存在,但是 ssh 跟桌面就是不給登入,因為 OSX 的登入有用到 kerberos 啊! 是說後來完整修復也不是用這招,因為修修改改弄一弄就炸掉了,還好試之前有先封存 Open Directory 伺服器,就放心的整個砍掉 (連 /var/db/openldap 都砍了) 再從封存檔回復,結果這樣居然就一切正常,連本來不吃的…

letsencrypt.sh

[華語, cmn-Hant-TW] 之前在這篇提到了 Let’s Encrypt 的 SSL,用起來是很開心沒錯,不過因為官方的 client 是用 python 寫的,在 freebsd 下面得裝一大堆 py27-* 的套件 (當然,安裝 security/py-letsencrypt 時會自動一起被裝進去,不用手動一個一個裝) 才能用,然後申請的時候要把 apache/nginx 關掉放出 80 port,某種程度來講還蠻讓人困擾的,後來看到有人用 shell script 寫了一個比較沒那麼肥的 letsencrypt.sh,主要得另外安裝 curl 而已,也不用關掉 apache/nginx,看起來蠻理想的,而且也進 FreeBSD 的 ports 了 (security/letsencrypt.sh),抓來下用了一下感覺還不錯: 用 ports 安裝的話檔案預設會放在 /usr/local/etc/letsencrypt.sh 目錄下,然後因為預設的 $BASEDIR…

Let’s Encrypt + FreeBSD

[華語, cmn-Hant-TW] 免費的 SSL – Let’s Encrypt 終於到了公測階段,其實之前封測的時候就有先試玩看看,是可以用啦不過問題比較多,要一些小技巧還有設定才能跑,而且 FreeBSD 的 ports 也還沒出來,現在的話有進 ports 用起來就方便很多,直接裝 security/py-letsencrypt 就可以用了 裝好之後執行 letsencrypt certonly,輸入 e-mail 跟要申請的網域就可以了,申請的過程需要用 80 port 來驗證,所以要先把網頁伺服器暫時關掉,然後當然要申請的網址也要確實有指到這台機器上,這樣才能驗證成功,如果順利的話應該幾秒鐘就申請完成了 在 FreeBSD 下暫時還沒有支援 apache 跟 nginx 的整合,所以這邊要自己弄,所有 letsencrypt 的檔案都會放在 /usr/local/etc/letsencrypt 的目錄下,以 pighead.cc 網域來當例子的話,就會放在 /usr/local/etc/letsencrypt/live/pighead.cc/,裡面會有 symbolic link 建好的 cert.pem…

Roundcube + smtp + ssl

[華語, cmn-Hant-TW] 用 Roundcube 架 Webmail,一般來講只要 imap 跟 smtp 在伺服器端都已經先設定好的話,應該是不會遇到太大的問題,就設定檔填一填值就可以動了,不過嘛… 來看一下 main.inc.php 關於smtp 設定的說明: // SMTP server host (for sending mails). // To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// // If left blank, the PHP mail() function is…

撤掉電腦裡的 CNNIC 根憑證

[華語, cmn-Hant-TW] 前一篇提到如果說發憑證的亂搞的話會怎樣,那自然就會想到中國的 CNNIC 了,這東西去年就吵過一次,也很多人提供各平台瀏覽器的移除方法,所以這邊只是複習 (備份?) 一下。 雖然說沒有明確的事實證明中國人真的會在裡面亂搞,不過其於對該國政府的不信任,不爽用總可以吧? CNNIC 根憑證不見得預設就被塞在電腦裡,但是有遇到的話就有可能會被下載存下來,只要逛過像是 https://www.enum.cn/ 之類的網站,CNNIC Root 就會冒出來了,我們可以等他冒出來之後再把他整個關掉,以下就是系統設定的筆記,有碰到的就記下來,之後有需要再增補。 Mac OS X – Safari/Chrome Mac OS X – Firefox 4 Mac OS X Safari/Chrome 用系統內建的 鑰匙圈存取 (Keychain Access.app),正常情況下應該是可以在 /應用程式/工具程式 下面找到, 然後在 系統根 裡面找出 CNNIC 在 CNNIC…

SSL 憑證公司 Comodo 出大包

[華語, cmn-Hant-TW] 最近網際網路發生了件很嚴重的事情:發憑證的大咖 Comodo 被攻破,然後拿來簽了幾個知名網站的 SSL 憑證。 Comodo 宣稱是伊朗的駭客攻擊造成,可能有政治目的。後來也真的有伊朗駭客上網宣稱是他幹的,因為他不爽米國人怎樣怎樣,為了證明真的是他幹的他甚至丟出他用 Comodo 生出來的 addons.mozilla.org 的 private key,在 Gea-Suan Lin’s BLOG的這篇 有提到,不過因為我沒在用 firefox 所以沒特別擔心就是 :p 相關的台灣華語報導不多,這兩篇可以參考一下 Comodo憑證遭盜用 Google/ 微軟/ Yahoo可能成攻擊目標 伊朗駭客:Comodo憑證被盜事件是我幹的! 總之,這件事告訴我們:有人亂搞的話 SSL 的機制會大亂,啊如果是發憑證的單位自己在亂搞呢?