> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/resources/es/other-resources/generate-a-self-signed-server-and-client-certificates-with-openssl.md).

# Generar certificados de servidor y de cliente autofirmados con OpenSSL

Esta es la guía definitiva para crear certificados seguros, tanto para servidores como para clientes, utilizando OpenSSL.

## Procedimiento

{% hint style="info" %}
En Windows, se recomienda utilizar Chocolatey para instalar OpenSSL y sus dependencias. La línea de comandos es simplemente `choco install openssl`.
{% endhint %}

### Crear la autoridad de certificación raíz (CA)

1. Genere la ***clave privada de la CA raíz*** mediante la siguiente línea de comandos:`openssl ecparam -name prime256v1 -genkey -noout -out ca.key`. Cada certificado debe tener una clave privada correspondiente.
2. Genere el ***certificado de la CA raíz*** (autoridad de certificación) mediante la siguiente línea de comandos: `openssl req -new -x509 -sha256 -key ca.key -out ca.crt`.
3. Introduzca la información sobre la CA (el certificado se generará en el fichero ca.crt):

   ```
   Country Name (2 letter code) [AU]:US
   State or Province Name (full name) [Some-State]:CA
   Locality Name (eg, city) []:Toontown
   Organization Name (eg, company) [Internet Widgits Pty Ltd]:Acme inc.
   Organizational Unit Name (eg, section) []:Security
   Common Name (e.g. server FQDN or your name) []:acme.com
   Email Address []:security@acme.com
   ```
4. [Instale el certificado](/resources/es/other-resources/install-root-certificates.md).

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Tenga en cuenta que el certificado debe instalarse en el servidor y en todos los clientes para validar la legitimidad de los certificados emitidos. Algunos navegadores también tienen particularidades que se describen en el tema.</p></div>

### Generar una solicitud de firma de certificado (CSR) – Servidor

{% hint style="warning" %}
Estos pasos suelen realizarse en cada servidor o dispositivo para el que se pretende solicitar un certificado. Instale OpenSSL si no está presente. La alternativa consiste en desplegar de forma segura la clave privada en el servidor de destino al mismo tiempo que el certificado. Se recomienda utilizar este último enfoque únicamente si debe ajustarse a despliegues automatizados para seguir prácticas de CloudOps/DevOps.
{% endhint %}

1. Genere la ***clave privada del certificado de servidor*** mediante la siguiente línea de comandos: `openssl ecparam -name prime256v1 -genkey -noout -out server.key` (clave privada de 256 bits en el fichero server.key). Cada certificado debe tener una clave privada correspondiente.
2. Genere la ***solicitud de firma de certificado*** (CSR) del servidor mediante la siguiente línea de comandos: `openssl req -new -sha256 -key server.key -out server.csr`. Esta solicitud se procesará más adelante en el servidor de la CA raíz.
3. Introduzca la información sobre el certificado de servidor (debe especificarse el FQDN exacto que utiliza el servidor). Por ejemplo:

   ```
   Country Name (2 letter code) [AU]:US
   State or Province Name (full name) [Some-State]:CA
   Locality Name (eg, city) []:Toontown
   Organization Name (eg, company) [Internet Widgits Pty Ltd]:Acme inc.
   Organizational Unit Name (eg, section) []:Security
   Common Name (e.g. server FQDN or your name) []:vault.acme.com
   Email Address []:security@acme.com
   ```
4. Introduzca una contraseña en el campo correspondiente; es esencial utilizar un gestor de contraseñas, así como un generador de contraseñas robustas.
5. Transfiera el fichero server.csr a la CA raíz.
6. Procese la solicitud siguiendo las instrucciones de ***Procesar una solicitud de firma de certificado (CSR) en la autoridad de certificación raíz (CA)*** a continuación.
7. Despliegue el certificado.

### Generar una solicitud de firma de certificado (CSR) – Cliente

Siga el mismo procedimiento que para el certificado de servidor, pero debe adaptar a sus necesidades dos atributos de la información que introduce, concretamente el ***Common Name*** y la ***Email Address***.

```
Common Name (e.g. server FQDN or your name) []:John Doe
Email Address []:JohnDoe@acme.com
```

### Procesar una solicitud de firma de certificado (CSR) en la autoridad de certificación raíz (CA)

Procese la CSR generando un certificado.

Genérelo mediante la siguiente línea de comandos, donde el fichero server.csr se ha generado en el servidor: `openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1000 -sha256`

Como resultado, el certificado se genera en el fichero server.crt. Debe desplegarlo en el servidor donde generó la CSR.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/resources/es/other-resources/generate-a-self-signed-server-and-client-certificates-with-openssl.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
