我有一个安装自定义证书的 ansible playbook。Ubuntu 22.04 默认使用 Firefox 的 snap,因此以下代码不起作用。
- name: Create Firefox policies.json
ansible.builtin.file:
path: /usr/lib/firefox/distribution/policies.json
state: touch
owner: root
group: root
mode: '0644'
- name: Configure Firefox certs
copy:
content: |
{
"policies": {
"Certificates": {
"ImportEnterpriseRoots": true,
"Install": [
"/usr/share/ca-certificates/extra/Cert1.crt",
"/usr/share/ca-certificates/extra/Cert2.crt",
"/usr/share/ca-certificates/extra/Cert3.crt"
]
}
}
}
dest: /usr/lib/firefox/distribution/policies.json
更改路径/snap/firefox/current/usr/lib/firefox/distribution
不起作用。我收到一条错误消息,指出该路径位于只读文件系统上。
如何在 Firefox Snap 中安装自定义证书?
答案1
尽管有报道称 ImportEnterpriseRoots 策略在 Linux 上不起作用,但这里,我设法让它工作起来。
您应该将 strategies.json 放入/etc/firefox/policies/
,并且需要将证书放在 snap 可以看到它们的地方,例如 下的子文件夹/etc/firefox/policies/
。例如。/etc/firefox/policies/certificates/
我建议您为此创建一个符号链接:
sudo ln -s /usr/share/ca-certificates/extra/ /etc/firefox/policies/certificates/
尽管将 /usr/ 文件夹与 /etc/ 中的系统文件夹链接起来并不是一个好主意。但我相信您明白我的意思。
然后,我相信你的 ansible 剧本应该是这样的:
- name: Create Firefox policies.json
ansible.builtin.file:
path: /etc/firefox/policies/policies.json
state: touch
owner: root
group: root
mode: '0644'
- name: Configure Firefox certs
copy:
content: |
{
"policies": {
"Certificates": {
"ImportEnterpriseRoots": true,
"Install": [
"/etc/firefox/policies/certificates/Cert1.crt",
"/etc/firefox/policies/certificates/Cert2.crt",
"/etc/firefox/policies/certificates/Cert3.crt"
]
}
}
}
dest: /etc/firefox/policies/policies.json