Skip to content

Commit 8d81fce

Browse files
authored
Merge pull request #87 from martfra/main
Add Parameter to Disable Verification of Server Certificate
2 parents 1e4972f + afe3dbd commit 8d81fce

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ client:
221221
version: # TLS version (https://github.com/eclipse/paho.mqtt.cpp/blob/master/src/mqtt/ssl_options.h#L305)
222222
verify: # verify the client should conduct post-connect checks.
223223
alpn_protos: # list of ALPN protocols (https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_alpn_protos.html)
224+
server_cert_auth: # [true] whether to verify the server certificate
224225
```
225226
226227
#### Bridge Parameters

mqtt_client/include/mqtt_client/MqttClient.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ class MqttClient : public rclcpp::Node,
423423
int version; ///< TLS version (https://github.com/eclipse/paho.mqtt.cpp/blob/master/src/mqtt/ssl_options.h#L305)
424424
bool verify; ///< Verify the client should conduct
425425
///< post-connect checks
426+
bool server_cert_auth; ///< whether to verify the server certificate
426427
std::vector<std::string> alpn_protos; ///< list of ALPN protocols
427428
} tls; ///< SSL/TLS-related variables
428429
};

mqtt_client/src/MqttClient.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,8 @@ void MqttClient::loadParameters() {
309309
declare_parameter("client.tls.key", rclcpp::ParameterType::PARAMETER_STRING, param_desc);
310310
param_desc.description = "client private key password";
311311
declare_parameter("client.tls.password", rclcpp::ParameterType::PARAMETER_STRING, param_desc);
312+
param_desc.description = "whether to verify the server certificate";
313+
declare_parameter("client.tls.server_cert_auth", rclcpp::ParameterType::PARAMETER_BOOL, param_desc);
312314

313315
param_desc.description = "The list of topics to bridge from ROS to MQTT";
314316
const auto ros2mqtt_ros_topics = declare_parameter<std::vector<std::string>>("bridge.ros2mqtt.ros_topics", std::vector<std::string>(), param_desc);
@@ -398,6 +400,7 @@ void MqttClient::loadParameters() {
398400
loadParameter("client.tls.verify", client_config_.tls.verify);
399401
loadParameter("client.tls.alpn_protos", client_config_.tls.alpn_protos);
400402
}
403+
loadParameter("client.tls.server_cert_auth", client_config_.tls.server_cert_auth, true);
401404
}
402405

403406
// resolve filepaths
@@ -886,6 +889,7 @@ void MqttClient::setupClient() {
886889
if (!client_config_.tls.password.empty())
887890
ssl.set_private_key_password(client_config_.tls.password);
888891
}
892+
ssl.set_enable_server_cert_auth(client_config_.tls.server_cert_auth);
889893
ssl.set_ssl_version(client_config_.tls.version);
890894
ssl.set_verify(client_config_.tls.verify);
891895
ssl.set_alpn_protos(client_config_.tls.alpn_protos);

0 commit comments

Comments
 (0)