diff --git a/vendor/git.autistici.org/ai3/go-common/clientutil/backend.go b/vendor/git.autistici.org/ai3/go-common/clientutil/backend.go
index 6580d0eb42ae0070a803db7df6ce15d7da595e3b..9e08fa01ab2c1906dfa36a5c74555ab0e4d7e2ad 100644
--- a/vendor/git.autistici.org/ai3/go-common/clientutil/backend.go
+++ b/vendor/git.autistici.org/ai3/go-common/clientutil/backend.go
@@ -13,7 +13,7 @@ import (
 // 'shard' parameter on their APIs.
 type BackendConfig struct {
 	URL       string           `yaml:"url"`
-	TLSConfig *TLSClientConfig `yaml:"tls_config"`
+	TLSConfig *TLSClientConfig `yaml:"tls"`
 	Sharded   bool             `yaml:"sharded"`
 	Debug     bool             `yaml:"debug"`
 }
diff --git a/vendor/git.autistici.org/ai3/go-common/clientutil/tls.go b/vendor/git.autistici.org/ai3/go-common/clientutil/tls.go
index 6eb0749eb78cd75cedb4168626ff67536387e9de..7974525e47eb1d3540d21e3f89ff23c17af83528 100644
--- a/vendor/git.autistici.org/ai3/go-common/clientutil/tls.go
+++ b/vendor/git.autistici.org/ai3/go-common/clientutil/tls.go
@@ -2,6 +2,7 @@ package clientutil
 
 import (
 	"crypto/tls"
+	"errors"
 
 	common "git.autistici.org/ai3/go-common"
 )
@@ -16,6 +17,10 @@ type TLSClientConfig struct {
 
 // TLSConfig returns a tls.Config object with the current configuration.
 func (c *TLSClientConfig) TLSConfig() (*tls.Config, error) {
+	if c.Cert == "" || c.Key == "" || c.CA == "" {
+		return nil, errors.New("incomplete client tls specification")
+	}
+
 	cert, err := tls.LoadX509KeyPair(c.Cert, c.Key)
 	if err != nil {
 		return nil, err
@@ -24,13 +29,11 @@ func (c *TLSClientConfig) TLSConfig() (*tls.Config, error) {
 		Certificates: []tls.Certificate{cert},
 	}
 
-	if c.CA != "" {
-		cas, err := common.LoadCA(c.CA)
-		if err != nil {
-			return nil, err
-		}
-		tlsConf.RootCAs = cas
+	cas, err := common.LoadCA(c.CA)
+	if err != nil {
+		return nil, err
 	}
+	tlsConf.RootCAs = cas
 	tlsConf.BuildNameToCertificate()
 
 	return tlsConf, nil
diff --git a/vendor/git.autistici.org/ai3/go-common/misc.go b/vendor/git.autistici.org/ai3/go-common/misc.go
index 582af3f7e148988ff382d50e9a2e0e1e9e0894d2..cd7f15e44a17ee4122b438f421942611927cdc58 100644
--- a/vendor/git.autistici.org/ai3/go-common/misc.go
+++ b/vendor/git.autistici.org/ai3/go-common/misc.go
@@ -2,6 +2,7 @@ package common
 
 import (
 	"crypto/x509"
+	"fmt"
 	"io/ioutil"
 )
 
@@ -12,6 +13,8 @@ func LoadCA(path string) (*x509.CertPool, error) {
 		return nil, err
 	}
 	cas := x509.NewCertPool()
-	cas.AppendCertsFromPEM(data)
+	if !cas.AppendCertsFromPEM(data) {
+		return nil, fmt.Errorf("no certificates could be parsed in %s", path)
+	}
 	return cas, nil
 }
diff --git a/vendor/vendor.json b/vendor/vendor.json
index c9891d75a048128bd609c1944f9df60813bb7a80..93fc8dbbe08ad9d4d9835d2bed9c764cf67a14d2 100644
--- a/vendor/vendor.json
+++ b/vendor/vendor.json
@@ -3,22 +3,22 @@
 	"ignore": "test",
 	"package": [
 		{
-			"checksumSHA1": "raJx5BjBbVQG0ylGSjPpi+JvqjU=",
+			"checksumSHA1": "pLvPnUablirQucyALgrso9hLG4E=",
 			"path": "git.autistici.org/ai3/go-common",
-			"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
-			"revisionTime": "2018-08-17T06:38:25Z"
+			"revision": "232cb4db4b1a9c57075dcdab7f2d8dfdf7590ce5",
+			"revisionTime": "2018-08-28T06:59:35Z"
 		},
 		{
-			"checksumSHA1": "49MChcx9D+/+pCyl/F469TcQcK4=",
+			"checksumSHA1": "WxcDAOyeiMJa5QyJAhsl6swy8ks=",
 			"path": "git.autistici.org/ai3/go-common/clientutil",
-			"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
-			"revisionTime": "2018-08-17T06:38:25Z"
+			"revision": "232cb4db4b1a9c57075dcdab7f2d8dfdf7590ce5",
+			"revisionTime": "2018-08-28T06:59:35Z"
 		},
 		{
 			"checksumSHA1": "7VBLbwaK1m/jwsk8sLsh4iD9T/s=",
 			"path": "git.autistici.org/ai3/go-common/serverutil",
-			"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
-			"revisionTime": "2018-08-17T06:38:25Z"
+			"revision": "232cb4db4b1a9c57075dcdab7f2d8dfdf7590ce5",
+			"revisionTime": "2018-08-28T06:59:35Z"
 		},
 		{
 			"checksumSHA1": "3O4iVrwqPi2ACUsNOhf0cgCyTgU=",