IDEA踩坑记一
问题描述
使用SVN提交代码失败,报错E230001: Server SSL certificate verification failed: certificate issued。
在网上搜索了一下,全是下面这样的回答:

实际上这个 ls 是查看目录内容的命令,执行之后会展示目录内所有目录文件信息,完全没有任何作用。
而且这个项目明明是我刚刚checkout下来的?访问目录都正常,只是现在提交失败了。
是什么原因导致,代码可以下载,却不能提交呢?
分析原因
咱们先把这句报错翻译一下:

意思是:服务器SSL证书验证失败,但是证书其实是已经存在的。
而且事实也是这样的:
证书验证失败,导致的代码commit失败。之前代码checkout能成功,是因为有证书。那为什么checkout的时候证书可以验证通过,而commit的时候验证就失败了呢?
问题其实也很简单,百度查查这个SSL就明白了。

这里报错说的SSL证书就是网络协议证书。有兴趣的可以看看SSL的详细说明。
SVN涉及到了网络协议了吗?
还真有!
咱们平常下载代码时,还记得SVN中的项目地址吗?是https:192.168.8.1:443/cyoa 这样的吧?注意这个https,有没有想起什么?是不是以前应该是http?https和http都是网络协议,有网络协议就会有安全。
问题就在这儿,https和http有啥区别?
以前咱们用的都是http,后来随着时代的发展,在http上增加了更多的安全机制,有了https。
你可以简单的理解为,http是旧的。https是他的升级版,更有效率也更安全。
结论
那么答案来了,这就是因为安全问题
就好比你手上拿着你家大门的钥匙,你刚出门,结果想起钱包没带,回头开门,发现门打不开,你刚刚才拿着钥匙从里面出来,现在钥匙还在手上却进不去,这是为啥?只有一个可能,你女朋友怕不安全在里面给你打上小锁了。
回到正题,SVN的网络安全问题怎么弄?SVN有个网络配置,默认配置的HTTPS,如下图示

这里默认是勾上的,意思是开启了https.
所以一般我们用eclipse下载代码时都是https://192.168.8.1:443/sdoa这样的。
去掉勾选后就是http://192.168.8.1:443/sdoa这样的。
解决步骤
知道了原因和原理,解决起来就很简单了。只需要两步就解决了
1.在SVN服务器上,打开SVN管理器,在network设置【网络设置的意思】中去掉https勾选后。
2.然后把你现在的项目代码包删了,重启IDEA,重新checkout,填上新的SVN项目地址(这个地址是http开头的),会提示你输入SVN账号密码,下面有个勾选框记得勾选,这是保留凭证,以后不用再填账号密码。如下图所示:

接下来随便修改个文件,commit测试下,提示成功,完美解决.

遗留问题
改成http之后会不会不安全,因为他不是安全连接?
1.所谓的安全不安全不过是相对而论,https只是相对来说比http安全一点而已,谁又能保证真正的安全。
2.而且既然都用SVN了,那正常来讲你代码应该都是放在内网服务器了,网络连接安全与你何干。如果你是放在外网的项目,为何不托管到git呢?
3.话说回来了,你又不是淘宝或者银行项目,安全不安全跟你又有何关系呢















