Come aggiungere string di utilizzo chiave estesa quando genera un certificato auto-firmato utilizzando openssl

Sto utilizzando openssl su Mac OS X 10.9 per generare un certificato auto-firmato per Windows Server Remote Desktop Services.

Utilizzando il command qui sotto posso generare il certificato,

  • Spostare gli account di servizio in una nuova OU
  • Impostazione di un client NFS di Mountain Lion Lion per accedere in modo sicuro al server NFS di Debian
  • Monit non si avvia: "Imansible tradurre <nome host>" al nome FQDN - nome nodo o servname fornito "
  • POODLE Cipher! SSLv3 = non corrispondenza di protocollo o di una suite di codici
  • Come configurare ADFS 2.0 per submit il token SAML 2.0 quando si utilizza WS-Federation
  • Errore 403 quando git push (più account github sullo stesso mac)
  • openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt 

    Tuttavia, devo aggiungere una estesa string di utilizzo chiave Authentication Server (1.3.6.1.5.5.7.3.1) e non riesco a capire come farlo nel command precedente.

    Ho provato a usare l'openssl option -extfile con un file contenente questo,

     [= default ] extendedKeyUsage = 1.3.6.1.5.5.7.3.1 

    Tuttavia, ottengo un errore che l'opzione "-extfile non si trova"

    One Solution collect form web for “Come aggiungere string di utilizzo chiave estesa quando genera un certificato auto-firmato utilizzando openssl”

    Mentre openssl x509 utilizza -extfile , il command che si utilizza, openssl req , deve -config specificare il file di configuration.

    Quindi, puoi usare un command come questo:

     openssl req -x509 -config cert_config -extensions 'my server exts' -nodes \ -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt 

    I soliti prompt per i bit di nome distinti sono definiti nel file di configuration predefinito (probabilmente /System/Library/OpenSSL/openssl.cnf su OS X), ma questo file non viene elaborato quando si utilizza -config , quindi il file di configuration deve anche includere alcuni bit DN. Così, il cert_config sopra cert_config potrebbe sembrare qualcosa di simile:

     [ req ] prompt = no distinguished_name = my dn [ my dn ] # The bare minimum is probably a commonName commonName = secure.example.com countryName = XX localityName = Fun Land organizationName = MyCo LLC LTD INC (dba OurCo) organizationalUnitName = SSL Dept. stateOrProvinceName = YY emailAddress = ssl-admin@example.com name = John Doe surname = Doe givenName = John initials = JXD dnQualifier = some [ my server exts ] extendedKeyUsage = 1.3.6.1.5.5.7.3.1 # 1.3.6.1.5.5.7.3.1 can also be spelled serverAuth: # extendedKeyUsage = serverAuth # see x509v3_config for other extensions 

    Come indicato nel commento, probabilmente è ansible escludere la maggior parte dei campi DN. Per l'utilizzo di HTTPS, penso che tutto ciò di cui hai bisogno è un CN che corrisponda al tuo hostname.


    Nella sezione Formato sezione req (1) della sezione Nome e attributo distinti, è ansible illustrare come modificare la configuration precedente per richiedere i valori (e fornire i valori predefiniti) se si desidera generare più certificati / richieste simili.

    Se hai bisogno di altre estensioni del certificato, controlla x509v3_config (5) per quali altri bit è ansible specificare nelle sezioni di estensione.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.