我试图在Amazon EC2,Ubuntu 18服务器上配置SSL访问我的mosquitto bridrge。我按照以下步骤进行了配置 蚊子毒素文档 并最终得到以下文件。
在一个临时目录下。
然后我复制了三个文件。
sudo cp ca.crt /etc/mosquitto/ca_certificates/
sudo cp server.key /etc/mosquitto/certs/
sudo cp server.crt /etc/mosquitto/certs/
然后我在配置文件中添加了以下部分:
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
certfile /etc/mosquitto/certs/server.crt
然后我想重新启动mosquitto:
sudo service mosquitto restart
这不行,我的回答是
> Job for mosquitto.service failed because the control process exited with error code.
> See "systemctl status mosquitto.service" and "journalctl -xe" for details.
我尝试了这两个,但只有信息,配置是错误的。
我试着注释了不同的行,下面的结构让服务重新启动。
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
#certfile /etc/mosquitto/certs/server.crt
不幸的是,为了让配置工作,certfile是必须的 我检查了配置示例和文档,certfile是一个合法且必需的参数。
我怎样才能解决这个问题?
经过进一步调查,我发现在示例配置文件中,行的顺序是不同的。
从
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
certfile /etc/mosquitto/certs/server.crt
到
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
解决了这个问题。