當使用https://形式的URL鏈接Apache時,Subversion客戶端將會受到兩個類型的響應:html
一、一個服務器證書服務器
二、一個針對客戶端證書的請求svn
在本人的應用場景主要涉及SVN倉庫遷移的操做,須要將大量的遠程倉庫集中遷移到本地倉庫進行管理。因此這裏主要描述服務器證書相關的問題,由於須要使用腳本執行Subversion的svnrdump命令,在執行的過程當中碰到以下提示信息:命令行
Error validating server certificate for 'https://...:端口號':code
-
The certificate is not issued by a trusted authority. Use theorm
fingerprint to validate the certificate manually!server
-
The certificate hostname does not match.htm
Certificate information:ip
-
Hostname: ..cn文檔
-
Valid: from Wed, 29 Nov 2017 01:24:36 GMT until Sat, 27 Nov 2027 01:24:36 GMT
-
Issuer: CMBAUTOTEST01TS.ho18t.cmbchina.cn
-
Fingerprint: cf:1f:c4:f0:9e:a3:42:0f:75:23:50:56:54:6e:11:71:df:a7:d3:9f
(R)eject, accept (t)emporarily or accept (p)ermanently?
在這裏能夠看到兩個錯誤提示,第一個錯誤提示能夠經過在命令行中添加參數「--trust-server-cert --non-interactive」(查詢svnrdump命令相關的文檔)解決,第二個錯誤是因爲hostname不相同致使的。
致使這個問題的緣由是:證書返回的Hostname是一個域名,可是驗證時使用的是ip地址。
在這裏使用的解決方法是:將https://鏈接中的ip地址替換爲服務器返回的證書中的Hostname,而後在機器的hosts文件中添加ip與Hostname的關聯映射。這樣就能夠保證腳本自動執行的過程當中不會被「Hostname does not match」中斷。
關於subversion的命令說明請參考官方文檔:svnbook.red-bean.com/nightly/zh/svn.ref.html