1
0
Fork 0
forked from External/grumble

Add ability to autogen self-signed x509 certs for use with Grumble.

This commit is contained in:
Mikkel Krautz 2011-04-28 20:27:38 +02:00
parent f36ae37afd
commit 1cc9745727
4 changed files with 105 additions and 3 deletions

View file

@ -24,6 +24,7 @@ var datadir *string = flag.String("datadir", "", "Directory to use for server st
var blobdir *string = flag.String("blobdir", "", "Directory to use for blob storage")
var sqlitedb *string = flag.String("murmurdb", "", "Path to murmur.sqlite to import server structure from")
var cleanup *bool = flag.Bool("clean", false, "Clean up existing data dir content before importing Murmur data")
var gencert *bool = flag.Bool("gencert", false, "Generate a self-signed certificate for use with Grumble")
var globalBlobstore *blobstore.BlobStore
@ -94,6 +95,26 @@ func main() {
log.Fatalf("Unable to initialize blobstore: %v", err.String())
}
// Generate a cert?
if *gencert {
certfn := filepath.Join(*datadir, "cert")
keyfn := filepath.Join(*datadir, "key")
log.Printf("Generating 2048-bit RSA keypair for self-signed certificate...")
err := GenerateSelfSignedCert(certfn, keyfn)
if err != nil {
log.Printf("Error: %v", err)
return
}
log.Printf("Certificate output to %v", certfn)
log.Printf("Private key output to %v", keyfn)
log.Printf("Done generating certificate and private key.")
log.Printf("Please restart Grumble to make use of the generated certificate and private key.")
return
}
// Should we import data from a Murmur SQLite file?
if len(*sqlitedb) > 0 {
f, err := os.Open(*datadir)