无需借助Shell将环境变量传递给Firefox的桌面启动器修改方案咨询
当然有更优雅的解决办法!既然你用的是Snap版Firefox,咱们可以直接通过修改(或自定义)桌面启动器配置,让每次点击图标启动Firefox时自动带上SSLKEYLOGFILE环境变量,彻底告别shell workaround。具体步骤如下:
第一步:复制系统桌面文件到用户目录(避免更新被覆盖)
Snap默认的桌面文件存放在系统目录,直接修改会在Firefox更新时被重置,所以先把它复制到用户专属的应用配置目录:cp /var/lib/snapd/desktop/applications/firefox_firefox.desktop ~/.local/share/applications/第二步:修改桌面文件的执行命令
用你习惯的文本编辑器打开复制后的文件,比如用nano:nano ~/.local/share/applications/firefox_firefox.desktop找到以
Exec=开头的行,原内容大概是Exec=snap run firefox,把它修改为:Exec=env SSLKEYLOGFILE=/home/你的用户名/.ssl/keylog.log snap run firefox注意:这里要把
/home/你的用户名/.ssl/keylog.log替换成你实际想保存密钥日志的绝对路径(尽量不用~,因为桌面启动器可能无法解析波浪号)。如果目标目录不存在,先提前创建:mkdir -p ~/.ssl第三步:让系统识别修改后的配置
执行下面的命令更新桌面应用数据库,确保系统能读取到你修改后的启动器:update-desktop-database ~/.local/share/applications/
可选方案:创建独立的SSL调试专用Firefox启动项
如果你不想替换默认的Firefox启动器,可以在~/.local/share/applications/目录下新建一个名为firefox-ssl-debug.desktop的文件,内容如下:
[Desktop Entry] Version=1.0 Name=Firefox (SSL调试模式) Comment=带SSL密钥日志的浏览器 Exec=env SSLKEYLOGFILE=/home/你的用户名/.ssl/keylog.log snap run firefox Icon=firefox Terminal=false Type=Application Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https; StartupNotify=true
保存后同样执行update-desktop-database命令,之后你就能在应用菜单里找到这个带SSL调试功能的Firefox入口了。
这样设置后,不管是点击默认图标还是专用调试图标启动Firefox,都会自动加载SSLKEYLOGFILE环境变量,完美替代之前的shell启动方式!
备注:内容来源于stack exchange,提问作者robsn

