1
0
mirror of https://github.com/shirou/mqttcli.git synced 2025-04-26 13:49:17 +08:00

add client certificate flag.

This commit is contained in:
Shirou WAKAYAMA 2015-07-08 21:15:48 +09:00
parent 8f6172c478
commit dbaaaee58f
2 changed files with 12 additions and 1 deletions

View File

@ -131,7 +131,8 @@ func main() {
EnvVar: "MQTT_PASSWORD"},
cli.StringFlag{"t", "", "mqtt topic to publish to.", ""},
cli.IntFlag{"q", 0, "QoS", ""},
cli.StringFlag{"cafile", "", "CA file", ""},
cli.StringFlag{"cafile", "", "CA certificates", ""},
cli.StringFlag{"cert", "", "Client certificates", ""},
cli.StringFlag{"i", "", "ClientiId. Defaults random.", ""},
cli.StringFlag{"m", "test message", "Message body", ""},
cli.BoolFlag{"r", "message should be retained.", ""},

10
mqtt.go
View File

@ -127,6 +127,16 @@ func NewOption(c *cli.Context) (*MQTT.ClientOptions, error) {
}
TLSConfig.RootCAs = certPool
}
cert := c.String("cert")
if cert != "" {
scheme = "ssl"
certPool, err := getCertPool(cert)
if err != nil {
return nil, err
}
TLSConfig.ClientAuth = tls.RequireAndVerifyClientCert
TLSConfig.ClientCAs = certPool
}
insecure := c.Bool("insecure")
if insecure {
TLSConfig.InsecureSkipVerify = true