如何在 Firefox snap 安装中安装证书?

如何在 Firefox snap 安装中安装证书?

我有一个安装自定义证书的 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

相关内容