diff --git a/client/config.go b/client/config.go
index eae3bfa6493f3df674119adcb7a276f205f5ba4d..4536994b7ac820265956fbdc9375b2df1493a89a 100644
--- a/client/config.go
+++ b/client/config.go
@@ -1,6 +1,8 @@
 package client
 
 import (
+	"os"
+
 	"github.com/mitchellh/go-homedir"
 	"github.com/spf13/pflag"
 	"github.com/spf13/viper"
@@ -28,10 +30,12 @@ func setDefaults() {
 // ReadConfig reads the client configuration from a file into a Config struct.
 func ReadConfig(path string) (*Config, error) {
 	setDefaults()
-	viper.SetConfigFile(path)
-	viper.SetConfigType("hcl")
-	if err := viper.ReadInConfig(); err != nil {
-		return nil, err
+	if _, err := os.Stat(path); err == nil {
+		viper.SetConfigFile(path)
+		viper.SetConfigType("hcl")
+		if err := viper.ReadInConfig(); err != nil {
+			return nil, err
+		}
 	}
 	c := &Config{}
 	if err := viper.Unmarshal(c); err != nil {
diff --git a/client/keys.go b/client/keys.go
index b488ea2231356312c470be5cfad8bb5cc6a74adf..f573136bc7d9097614a1378fe5b75dad09068d5f 100644
--- a/client/keys.go
+++ b/client/keys.go
@@ -59,7 +59,9 @@ func pemBlockForKey(priv interface{}) (*pem.Block, error) {
 // Default is "rsa"
 func KeyType(keyType string) KeyOption {
 	return func(o *options) {
-		o.keytype = keyType
+		if keyType != "" {
+			o.keytype = keyType
+		}
 	}
 }
 
diff --git a/cmd/cashier/main.go b/cmd/cashier/main.go
index 2b2436481a08967a6d61f15be1bb32e18ec367ce..f0ba2f1a4c9ac36bca7b059dd2d30eb7b20111b9 100644
--- a/cmd/cashier/main.go
+++ b/cmd/cashier/main.go
@@ -36,17 +36,17 @@ func main() {
 
 	c, err := client.ReadConfig(*cfg)
 	if err != nil {
-		log.Printf("Error parsing config file: %v\n", err)
-	}
-	fmt.Printf("Your browser has been opened to visit %s\n", c.CA)
-	if err := browser.OpenURL(c.CA); err != nil {
-		fmt.Println("Error launching web browser. Go to the link in your web browser")
+		log.Printf("Configuration error: %v\n", err)
 	}
 	fmt.Println("Generating new key pair")
 	priv, pub, err := client.GenerateKey(client.KeyType(c.Keytype), client.KeySize(c.Keysize))
 	if err != nil {
 		log.Fatalln("Error generating key pair: ", err)
 	}
+	fmt.Printf("Your browser has been opened to visit %s\n", c.CA)
+	if err := browser.OpenURL(c.CA); err != nil {
+		fmt.Println("Error launching web browser. Go to the link in your web browser")
+	}
 
 	fmt.Print("Enter token: ")
 	var token string