在前一章節上,如果主機有必要讓外部進行連線,除了使用安全連線(已授權網路)外,接下來會介紹另一個可以保護SQL主機的方式 ,僅允許SSL安全連線。
需要注意:因為每次變動安全性設定時 Cloud SQL都需要重新啟動(時間大概一分鐘內)
建立用戶憑證後(要記得點擊下載server-ca&client-cert&client-key三個PEM檔案)
PostgresSQL Client GUI Tools首選就是同樣就是社群在維護的pgAdmin,當下Windows最新版本為pgAdmin 4 v6.13。
我們直接用帳號密碼進行連線,會出現無法連線的錯誤訊息,此時會有兩列錯誤訊息,第二列訊息很像是連線IP沒有被設定進pg_hba.conf中,但是第一行很明白告訴使用者 需要有有效的Client端憑證,原因就是為了安全,在CloudSQL上開啟必須用SSL連線的設定。
將SSL憑證放到pgAdmn中,如下圖所示
之後按下SAVE按鍵,就能夠順利連線到Cloud SQL。
在Java開發上,PEM憑證並沒有支援,因此需要透過第三方套件將PEM的憑證轉成DER的憑證,操作如下:
openssl pkcs8 -topk8 -inform PEM -outform DER -in your-key.pem -out your-key.pk8
chmod 600 your-key.pk8
在建置WEB服務時,資料庫可以比喻成人體的大腦,儲存了很多重要的資訊(EX:用戶資料、訂單資料…etc)。因Cloud SQL with PostgresSQL服務是建置在預設的5432 Port上,如果有開啟外部連線,很容易受到外部攻擊。在這邊我們演示加強安全規範的SSL連線方法啟用方式,並提供PEM轉換DER檔案示範,解決JAVA WEB程式初始憑證檔案,連線Cloud SQL需求,供有相同需求的開發者參考。