openshift lets-encrypt

Cómo configurar Openshift con Let''s encrypt(letsencrypt)



lets-encrypt (5)

La respuesta de Lucus03 es buena, solo me gustaría agregar un comentario general.

Suposiciones Tiene al menos una cuenta Openshift de bronce que permite un dominio personalizado. Esto funciona normalmente y puede acceder a su sitio (sin https). http://www.testdomain.com

Necesitamos seguir el proceso manual. Aquellos que son nuevos en certificados, como yo, pueden no estar claros en los conceptos generales.

Let''s Encrypt necesita confirmar que usted controla el dominio antes de emitir un certificado. Esto significa poner archivos temporales en el servidor que aloja su sitio. Vamos a cifrar, luego verifica estos y emite un certificado.

En el proceso manual, los archivos temporales se descargan primero en su PC local. A continuación, coloca manualmente los archivos en la ubicación correcta en el servidor. Estos archivos de texto deben ser visibles a través de su sitio o el proceso fallará.

Debido a la variedad de aplicaciones que utilizan Openshift, verá que se utilizan diferentes pilas de software. por ejemplo, http://velin-georgiev-blog.appspot.com/blog/details/5707532110659584 refiere a Flask. Cómo configurar Openshift con Let''s encrypt (letsencrypt) por Lucas03 Django

Si puede mostrar los archivos temporales en www.testdomain.com usando su navegador, probablemente pueda ignorar la pila de software y quedarse con lo que sabe.

¿Cómo configuro la aplicación Openshift para que funcione con el cifrado?

NB Openshift no funciona con un enfoque simple del servidor web de Python para el servidor, debe usar el puerto correcto y enlazar con la dirección IP correcta. Además, la aplicación / equipo no tiene necesariamente una raíz html.

(Una pregunta que voy a publicar una respuesta a continuación.)


Las respuestas anteriores son correctas pero algo complicadas. Encontré la respuesta más sencilla a continuación, inténtelo. Refiriéndonos a Let''s Encrypt en OpenShift ,

Suponiendo que nos permite cifrar, cree una nueva carpeta, diga "ssl". Crear config, work y logs dir en la carpeta "ssl". A continuación, ejecute el comando letsencrypt.

$ mkdir ssl $ cd ssl $ mkdir config work logs $ letsencrypt --text --email [email protected] --domains www.mydomain.com,mydomain.com,foo.mydomain.com --agree-tos --renew-by-default --manual certonly --config-dir ./config/ --work-dir ./work/ --logs-dir ./logs/

Le indica que cargue un archivo en su despliegue de openshift. Una vez que hayas subido, puedes proceder y los certificados estarán a tu disposición. Bonito y fácil.

Además, asegúrese de que sus puntos finales estén implementados en el protocolo "http" y no en "https". De lo contrario, letsencrypt emitirá el error de que ya tiene un certificado. :-)


Primero, vote aquí para que OpenShift haga de ''Let''s Encrypt'' su prioridad.

Mis pasos serán válidos para las aplicaciones Django, pero con pequeños cambios puedes hacer que funcionen en cualquier equipo de OpenShift.
Genere el certificado en su localhost / notebook / pc:

  1. git clone https://github.com/letsencrypt/letsencrypt a su computadora local.
  2. cd letsencrypt
  3. ./letsencrypt-auto -a manual -d example.com -d www.example.com
    Ahora se le pedirá que confirme la propiedad de su dominio.
  4. En su aplicación, asegúrese de que example.com/.well-known/acme-challenge/{some hash} devuelve el hash requerido. En django puedes agregar esta línea a urls.py :

    url(r''^.well-known/acme-challenge/.*'', views.https_confirmation, name="https_confirmation"),

    y esto para view.py :

    def https_confirmation(request): if request.META[''HTTP_HOST''] == ''www.example.com'': return HttpResponse("fqTGI3nUiYnelm...", content_type="text/plain") else: #naked domain example.com return HttpResponse("HASH pre example.com", content_type="text/plain")

    Si sus páginas de confirmación de acme no se muestran, reinicie la aplicación OpenShift.

  5. Simplemente cargue los certificados creados /etc/letsencrypt/archive/example.com en la consola web de OpenShift. Fullchain.pem como certificado SSL y privkey.pem como clave privada del certificado .

Eso es todo, ahora debería obtener una calificación A en ssllabs.com.
Además, para requerir que la aplicación Django use HTTPS, configura estos:

  1. En settings.py :

    if not DEBUG: SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True`

  2. Cree el archivo wsgi/.htaccess y ponga estas líneas allí:

    RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

  3. Habilitar HTTPS para WSGI - en el archivo wsgi/application :

    # make django aware that SSL is turned on os.environ[''HTTPS''] = "on"

    Eso debería ser todo :) Debe repetir estos pasos al renovar certificados, por lo que cada 90 días (60 días son mejores, por lo que no terminará teniendo problemas en el último día posible). Estos son pasos bastante molestos, así que esperemos (y votemos ) ¡OpenShift implementará Letsencrypt pronto!



Suponiendo que la aplicación se llame https y los nombres de dominio para el certificado se llamen www.example.com

Primero (si aún no lo ha hecho) instale las herramientas de rhc, https://developers.openshift.com/en/managing-client-tools.html

Segundo (si aún no lo ha hecho) Configure el registro CNAME con su proveedor de DNS, en developers.openshift.com/en/managing-domains-ssl.html Test www.example.com (http) funciona y se dirige a su aplicación openshift antes anterior.

Tercera sesión en su aplicación

rhc ssh -a https

Desde la aplicación, instale Simple Let''s Encrypt Client y actualice algunos de los paquetes de Python necesarios.

pip install git+https://github.com/kuba/simp_le pip install --upgrade six pip install --upgrade setuptools

Ahora detenga la aplicación (engranaje) Configure un servidor web python2, que tenga el puerto correcto y la IP correcta. [$ OPENSHIFT_PYTHON_IP & OPENSHIFT_PYTHON_PORT]

(Tenga en cuenta que se trata de una línea en python 3.4, python -m http.server $ OPENSHIFT_PYTHON_PORT --bind $ OPENSHIFT_PYTHON_IP, pero openhift en el momento de escribir tiene solo python 3.2 o python 2. Por lo tanto, se necesita un script simple de python 17 líneas)

gear stop mkdir -p /tmp/http/.well-known/acme-challenge cd /tmp/http wget https://gist.githubusercontent.com/bmsleight/bc34254eed0ee458738e/raw/61110fe6e3980f0c6a401acae93f221f56b1eced/simple_acme_server.py python2 simple_acme_server.py &

Vaya al directorio de datos como un buen lugar para almacenar los certificados y deje que simp_le haga su magia

cd ~/app-root/data/ simp_le --email [email protected] -f account_key.json -f fullchain.pem -f key.pem -d www.example.com --default_root /tmp/http

Suponiendo que no haya errores, detenga el servidor web python2, reinicie la aplicación / engranaje y salga del servidor de openshift

killall python2 gear start exit

Forth La carga de los certificados y las claves se debe realizar fuera de la aplicación, por lo que desde su máquina local, tome una copia y luego cárguelas (sí, scp es al revés - RTFM)

rhc scp -a https download ./ ./app-root/data/fullchain.pem rhc scp -a https download ./ ./app-root/data/key.pem rhc alias update-cert https www.example.com --certificate fullchain.pem --private-key key.pem

Quinto muestra algo de amor en letsencrypt.org