使用www-data user运行由systemd管理的Kestrel服务器。尝试使用启用了TLS的MailKit发送电子邮件时,我收到以下错误消息:
System.UnauthorizedAccessException: Access to the path '/var/www/.dotnet/corefx/cryptography/crls' is denied. ---> System.IO.IOException: Permission denied
一种解决方案可能是为www-data
设置主目录,但这似乎是反直觉的。
答案 0 :(得分:1)
调用堆栈指示代码(MailKit或其中一个依赖项)正在尝试构建和访问证书缓存。
您可以手动创建目录并授予必要的权限。
不要修改/ var top目录,因为那很疯狂。
首先,您需要递归创建目录:
mkdir -p /var/www/.dotnet/corefx/cryptography/crls
并授予www-data组的权利 (如果这是运行您服务的组)
sudo chgrp www-data /var/www/.dotnet/corefx/cryptography/crls