context.load_cert_chain(certfile="server.crt", keyfile="server.key"),报错No such file or directory
时间: 2024-01-12 13:05:09 浏览: 159
这个问题可能是由于您的证书文件没有放在正确的位置导致的。默认情况下,Python会从当前脚本的工作目录中查找文件。您可以使用以下代码检查当前脚本的工作目录:
```python
import os
print(os.getcwd())
```
请确保您的证书文件放在此目录下或者您可以使用绝对路径来指定证书文件的位置。例如:
```python
import os
import ssl
cert_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'certs')
certfile = os.path.join(cert_path, 'server.crt')
keyfile = os.path.join(cert_path, 'server.key')
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile=certfile, keyfile=keyfile)
```
在这个例子中,我们首先使用 `os.path.abspath(os.path.dirname(__file__))` 获取当前脚本的绝对路径。然后,我们在该目录下创建了一个名为 `certs` 的子目录,并将证书文件放在其中。最后,我们使用 `os.path.join` 方法来构造证书文件的路径,并使用该路径调用 `context.load_cert_chain` 方法。
请注意,如果证书文件仍然无法找到,您可以检查文件名的拼写是否正确以及文件是否存在。
阅读全文