{"id":23,"date":"2020-10-06T03:00:10","date_gmt":"2020-10-06T03:00:10","guid":{"rendered":"https:\/\/tecno-experts.com\/fransilvablog\/?p=23"},"modified":"2020-10-06T03:00:10","modified_gmt":"2020-10-06T03:00:10","slug":"cambio-de-certificados-digitales-vcloud-director-10-1","status":"publish","type":"post","link":"https:\/\/tecno-experts.com\/fransilvablog\/vmware-cloud-director\/cambio-de-certificados-digitales-vcloud-director-10-1\/","title":{"rendered":"Cambio de certificados digitales VMware Cloud Director 10.1"},"content":{"rendered":"<p><span style=\"font-size: 12pt;\"><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/tecno-experts.com\/fransilvablog\/wp-content\/uploads\/fransilvablog\/images\/articulos\/certs.png\" width=\"645\" height=\"441\" \/><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Hola, en este post vamos a realizar el cambio de los certificados digitales en la c\u00e9lulas de vCD.\u00a0<\/span><span style=\"font-size: 12pt;\">Para este caso en particular, los certificados que usaremos son del tipo Wildcard y fueron generados previamente usando un archivo de petici\u00f3n de certificado o CSR y una llave privada\u00a0(archivos que podemos generar con\u00a0<\/span><a style=\"font-size: 12pt;\" href=\"https:\/\/www.ssl.com\/how-to\/manually-generate-a-certificate-signing-request-csr-using-openssl\/\">OpenSSL<\/a><span style=\"font-size: 12pt;\">\u00a0por ejemplo); por lo tanto como prerequisitos es necesario tener los archivos <\/span><em style=\"font-size: 12pt;\">PEM\/CER\/CRT *.domain.com <\/em><span style=\"font-size: 12pt;\">que se adquiere enviado el CSR a la entidad autenticadora o CA para que los firme,\u00a0<\/span><span style=\"font-size: 12pt;\">los archivos de <\/span><em style=\"font-size: 12pt;\">root<\/em><span style=\"font-size: 12pt;\"> o <\/span><em style=\"font-size: 12pt;\">intermediate<\/em><span style=\"font-size: 12pt;\"> de la Autoridad Certificadora y el archivo de llave privada\u00a0<\/span><em style=\"font-size: 12pt;\">KEY<\/em><span style=\"font-size: 12pt;\">.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Primero, debemos realizar un snapshot, <strong>se recomienda realizar el snapshot sin habilitar la opci\u00f3n de capturar memoria de la VM<\/strong> para evitarnos problemas con la memoria que usa la BDD vPostgres embebida.<\/span><\/p>\n<p><span style=\"font-size: 14pt;\"><strong><span style=\"color: #0000ff;\">Importaci\u00f3n de certificados Wildcard<\/span><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para importar los certificados que hemos obtenido de la CA, debemos seguir los siguientes pasos:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Usando OpenSSL podemos convertir los certificados en cadenas PFX o en PKCS12 que son formatos est\u00e1ndar.<\/span><\/p>\n<pre class=\"language-markup\"><code>openssl pkcs12 -export -in certificado_wildcard.crt -inkey llave_privada.key -CAfile certificados_CA.crt -name http -passout pass:'password' -out http.pfx -chain\r\n<\/code><\/pre>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">y<\/span><\/p>\n<pre class=\"language-markup\"><code>openssl pkcs12 -export -in certificado_wildcard.crt -inkey llave_privada.key -CAfile certificados_CA.crt -name consoleproxy -passout pass:'password' -out consoleproxy.pfx -chain<\/code><\/pre>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Porque no olvidemos que tenemos dos servicios dentro de vCD el servicio de <strong>HTTPS<\/strong> y el servicio <strong>CONSOLEPROXY<\/strong> para que funcionen las consolas de las VMs.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Las cadenas han sido creadas,\u00a0el siguiente paso es importar las cadenas al contenedor JAVA que usa vCD en este caso <em>certificates.ks<\/em><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">EL comando que se debe usar es <em>KEYTOOL\u00a0<\/em>previamente JAVA debe estar instalado en el servidor que estamos usando, generalmente se corren los comandos en las c\u00e9lulas de vCD.<\/span><\/p>\n<pre class=\"language-markup\"><code>$VCLOUD_HOME\/jre\/bin\/keytool -importkeystore -deststorepass 'password' -destkeystore \/opt\/vmware\/vcloud-director\/certificates.ks -deststoretype JCEKS -srckeystore http.pfx -srcstoretype PKCS12 -srcstorepass 'password'\r\n<\/code><\/pre>\n<p><span style=\"font-size: 12pt;\">para el servicio HTTP<\/span><\/p>\n<pre class=\"language-markup\"><code>$VCLOUD_HOME\/jre\/bin\/keytool -importkeystore -deststorepass 'password' -destkeystore \/opt\/vmware\/vcloud-director\/certificates.ks -deststoretype JCEKS -srckeystore consoleproxy.pfx -srcstoretype PKCS12 -srcstorepass 'password'<\/code><\/pre>\n<p><span style=\"font-size: 12pt;\">para el servicio de CONSOLEPROXY<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">donde;\u00a0<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">importkeystore = sentencia para importar la cadena de certificados en el contenedor KS<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">destkeystore = ubicaci\u00f3n del contenedor JAVA de los certificados que posterior se usaran para el reemplazo<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">deststoretype = formato de archivo contenedor que vCD soporta JCEKS\/PKCS12, recomendado usar PKCS12<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">srckeystore = archivo que contiene la cadena de certificados, por lo general tiene formato PFX<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Luego de realizar estos pasos tendremos un archivo <em>certificates.ks<\/em> con contrase\u00f1a <i>password<\/i><\/span><\/p>\n<h3><span style=\"font-size: 14pt; color: #0000ff;\"><strong>Configurar certificados en servicios de vCloud Director<\/strong><\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Debemos asegurarnos que el archivo certificates.ks tenga como propietario al usuario vcloud usando <strong>chown vcloud.vcloud certificates.ks<\/strong><\/span>\u00a0<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Y para evitar que clientes est\u00e9n realizando trabajos debemos colocar las c\u00e9lulas en modo mantenimiento corriendo el siguiente comando:<\/span><\/p>\n<pre class=\"language-markup\"><code>$VCLOUD_HOME\/bin\/cell-management-tool -u administrator cell --quiesce true<\/code><\/pre>\n<p><span style=\"font-size: 12pt;\">Luego usando cell-management-tool cambiamos los certificados que esta usando el vCD por los nuevos<\/span><\/p>\n<pre class=\"language-markup\"><code>$VCLOUD_HOME\/bin\/cell-management-tool certificates -j -p -k certificates.ks -w 'password'<\/code><\/pre>\n<p><span style=\"font-size: 12pt;\">donde;<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">certificates = opci\u00f3n para manipular certificados<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">j = opci\u00f3n para manipular certificados de HTTP<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">p = opci\u00f3n para manipular certificados de CONSOLEPROXY<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">k = opci\u00f3n para usar el contenedor en nuestro ejemplo certificates.ks<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">w = opci\u00f3n para colocar la contrase\u00f1a del contenedor que en nuestro caso es \u00abpassword\u00bb<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Al finalizar, se debe realizar un reinicio de los servicios de vCD<\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><em>service vmware-vcd restart<\/em><\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><strong>Importante,\u00a0<\/strong> si tenemos un ambiente con HA de vPostgres y varios vCD app, debemos realizar los cambios en la c\u00e9lula primaria, luego ir cambiando en cada una de las c\u00e9lulas secundarias o de aplicaci\u00f3n.<\/span>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hola, en este post vamos a realizar el cambio de los certificados digitales en la c\u00e9lulas de vCD.\u00a0Para este caso en particular, los certificados que usaremos son del [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[22,27,10,31,35,30,36],"class_list":["post-23","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vmware-cloud-director","tag-appliance","tag-certificados","tag-cloud","tag-clouddirector","tag-vcd10-2","tag-vmwareclouddirector","tag-wildcard"],"_links":{"self":[{"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":0,"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/media\/24"}],"wp:attachment":[{"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tecno-experts.com\/fransilvablog\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}