我前些天发帖说 NetworkManager 的 IKEv2 老是搞不定,结果折腾下来,发现问题居然如此简单,就是日志中那句我曾经以为是可以忽略的话: opening directory '/usr/share/ca-certificates' failed: No such file or directory 我以为当它发现找不到这个目录时,它会自己去找系统自带的证书的,或者联网检索,但我还是太天真了,这玩意居然真的就只认这个目录下的 CA,当然,你也可以在 NM 配置文件中指定其它路径。
我就想,为嘛 linux 不像 Windows 或 Android 那样,搞一个集中式的证书系统呢?那样的话,各种浏览器、NM、ipsec 等等各种与 CA 打交道的软件,都可以统一通过它来读取了,反正 systemd 中已经搞了这么多服务,不多这一个了。。。
1
ryd994 2017-10-07 15:06:42 +08:00
fedora 系在 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
|
2
pisser 2017-10-07 15:07:45 +08:00
Linux 发行版 统一 这几个字能连起来再说其他问题。
|
3
snnn 2017-10-07 15:09:58 +08:00
openssl 和 nss 之间还不知道得打架打多少年呢。歇歇吧
|
4
skydiver 2017-10-07 15:13:26 +08:00 via Android
没必要统一。同一个发行版的源里安装的包应该就是配置好的
|
5
pq OP @ryd994 嗯,这是系统默认安装的 ca-certificates 包中的,貌似是 Mozilla 的,但不齐全,很多 vpn 所需的服务器证书都没有。
|
6
pq OP @skydiver 配置好的?用起来就知道坑很多了,我用的这个 Fedora,nm-strongswan 默认需要 /usr/share/ca-certificates,但默认安装后的系统居然并没有这个目录。
|
7
skydiver 2017-10-07 15:18:36 +08:00 via Android
@pq 你是从源里安装的吗?可以提 bug 在 https://bugzilla.redhat.com 或者联系 packager 修复
|
8
pq OP @skydiver 嗯,直接 dnf 安装的。可惜我英文写作水平太次,无法清楚表达自己的意思,要不你帮忙提交一下?这个应该是 strongswan 和 nm-strongswan 这几个包的打包者负责的,编译时默认路径是可以指定的。
不过,我估计他也不好做抉择,因为系统可以放 ca 证书的路径有好多,/etc/ipsec.d、/etc/strongswan/ipsec.d/cacerts、/etc/pki 等等,看上去都各行其是。 |
9
cye3s 2017-10-07 15:39:36 +08:00 via Android
统一?我看不爽你的配置,我就开新分支🤣
|
10
hanqi7012 2017-10-07 15:54:31 +08:00
linux 不就是穷折腾?没得救啦
反正大家脾气都大 |
11
wsy2220 2017-10-07 16:12:27 +08:00 via Android
装发行版打包好的软件就好了
|
12
hjc4869 2017-10-07 16:23:43 +08:00 1
统一的 cert store ?我还希望能把 /etc/ 统一成注册表呢。。
|
13
hcnhcn012 2017-10-07 19:58:46 +08:00 via iPhone
Linux 发行版统一感觉有点难吧,同用 fedora,问下之前的 init.d 中的启动脚本怎么变了样了,我要添加启动项现在怎么办了啊?fedora26
|
14
pq OP @hcnhcn012 晕,你是好多年前用过 linux,最近才重新用 fedora 的吧? systemd 替代 SysV init 已经好多年了。
简单的自启动,可以 vi /etc/rc.local,然后 systemctl enable rc-local.service 再 start 它。 |
15
pq OP @hjc4869 我觉得注册表也不是什么优点,/etc 文件直接明了,操控起来更方便。但是,一些必要的标准还是需要社区逐渐达成共识的,尽管争议很多,但 systemd、NetworkManager、Firewalld 之类的东西还是强行推广起来了,适应之后,感觉也挺好的,感觉以后的 linux,很多东西都会逐渐形成一套标准的。
|
16
pq OP @wsy2220 我这岂止是发行版自带软件仓库里的,而且全部是官方 iso 默认安装的!不信你就新装一个,然后创建一个 IKEv2 VPN,看能不能用?
|
17
hjc4869 2017-10-07 21:36:52 +08:00
@pq /etc 下各家有各家的格式,根本没有一种通用的编辑方式,所谓操作方便只是你拿文本编辑器操作方便,想写一点脚本做自动化简直是痛苦的要死,在 Windows 上直接用 PowerShell 操作 HKLM:\ HKCU:\ 简单明了,就算有存配置文件的,也几乎都是 XML (比如 IIS ),并且还提供统一的操作方式,比如 COM 接口或者 PowerShell cmdlet。
你可以把 /etc 当作跟注册表一样,都是一个 key-value store,但是它们的 value 一个简单有序,一个粗糙暴力,如果注册表套用 /etc 那个模式,那就是各种 service 的注册表 value 类型全是 string,在这个 string 里存自己需要的格式,比如扔个 json 进去。 Linux 下并非没有注册表的 equivalent,也不是没有 COM 的 equivalent,但是还是没有统一,一盘散沙,谁都是爱用什么就用什么,甚至一套系统复杂了,就自己再造个注册表,造个 COM。(比如 GNOME 家,这一套都齐了) Windows 虽说最近也有这个趋势,但估计等 Windows 死的那天都不会严重到 Linux 这种程度。 |
18
wengjin456123 2017-10-07 22:23:22 +08:00 via Android
你让一群大爷坐下来谈谈…
|
19
iceheart 2017-10-11 19:44:18 +08:00 via Android
不能这么搞,不然大家费这么大劲写个浏览器,控制权交给别人,图啥呀?谷歌屏蔽沃森就是个例子嘛
|