3737 ed25519Key = flag .Bool ("ed25519" , false , "Generate an Ed25519 key" )
3838 orgName = flag .String ("org-name" , "Certgen Development" , "Organization name used when generating the certs" )
3939 commonName = flag .String ("common-name" , "" , "Common name for client cert" )
40+ ouName = flag .String ("ou-name" , "" , "Organizational unit name for cert. Defaults to username@hostname" )
4041 isNoCA = flag .Bool ("no-ca" , false , "whether this cert should not be its own Certificate Authority" )
4142 isClient = flag .Bool ("client" , false , "whether this cert is a client certificate" )
4243 validFrom = flag .String ("start-date" , "" , "Creation date formatted as Jan 1 15:04:05 2011" )
@@ -54,18 +55,22 @@ func publicKey(priv interface{}) interface{} {
5455 }
5556}
5657
57- var userAndHostname string
58+ var organizationalUnit string
5859
5960func init () {
60- u , err := user .Current ()
61- if err == nil {
62- userAndHostname = u .Username + "@"
63- }
64- if h , err := os .Hostname (); err == nil {
65- userAndHostname += h
66- }
67- if err == nil && u .Name != "" && u .Name != u .Username {
68- userAndHostname += " (" + u .Name + ")"
61+ if * ouName == "" {
62+ u , err := user .Current ()
63+ if err == nil {
64+ organizationalUnit = u .Username + "@"
65+ }
66+ if h , err := os .Hostname (); err == nil {
67+ organizationalUnit += h
68+ }
69+ if err == nil && u .Name != "" && u .Name != u .Username {
70+ organizationalUnit += " (" + u .Name + ")"
71+ }
72+ } else {
73+ organizationalUnit = * ouName
6974 }
7075}
7176
@@ -124,7 +129,7 @@ func main() {
124129 SerialNumber : serialNumber ,
125130 Subject : pkix.Name {
126131 Organization : []string {* orgName },
127- OrganizationalUnit : []string {userAndHostname },
132+ OrganizationalUnit : []string {organizationalUnit },
128133 },
129134 NotBefore : notBefore ,
130135 NotAfter : notAfter ,
0 commit comments