Closed panswer closed 2 years ago
revisando las peticiones al servidor encontre que el error que da exactamente es: strict-origin-when-cross-origin
Seguire por mi parte de igual forma buscando solucion al problema.
Eh creado el middleware
- "traefik.http.middlewares.cors.headers.accesscontrolallowmethods=GET,OPTIONS,PUT"
- "traefik.http.middlewares.cors.headers.accesscontrolalloworigin=origin-list-or-null"
- "traefik.http.middlewares.cors.headers.accesscontrolmaxage=100"
- "traefik.http.middlewares.cors.headers.addvaryheader=true"
para CORS desde traefik y le pase el middleware al contenedor del mail
- "traefik.http.routers.mail-secured.middlewares=cors@docker" # <== CORS
Sin solucion aun
despues de tanto investigar di con la solucion. El detalle esta en que el propio traefik simplemente necesita mandar todas las peticiones al puerto 80, tambien falto que le colocara el hostname. Por ahora solamente poseo un error y es que, la prueba de outbound para el puerto 25 falla.
version: "3.4"
services:
poste:
image: analogic/poste.io
restart: always
hostname: "mail.mytestingenlocal.ml"
container_name: mail
ports:
- "25:25"
# - "80"
# - 443
- 110:110
- 143:143
- 465:465
- 587:587
- 993:993
- 995:995
- 4190:4190
networks:
- web
volumes:
- ./mail:/data
labels:
#### Labels define the behavior and rules of the traefik proxy for this container ####
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.routers.mail.rule=Host(`mail.mytestingenlocal.ml`)" # <== Your Domain Name for the https rule
- "traefik.http.routers.mail.entrypoints=web-secured" # <== Defining entrypoint for https, **ref: line 31
- "traefik.http.routers.mail.tls.certresolver=mytlschallenge" # <== Defining certsresolvers for https
- "traefik.http.services.mail.loadbalancer.server.port=80" # <== port running
environment:
- HTTPS=OFF
- DISABLE_CLAMAV=TRUE
networks:
web:
external: true
Este issue se ha marcado automágicamente como "stale" porque no ha tenido actividad reciente. Va a ser cerrado si no se ve actividad nueva. Intentá hacer tu pregunta en Slack. Gracias por sus contribuciones.
Disculpen por volver a abrir el hilo, pero aun no resuelvo el tema
lo estoy haciendo de esta manera para que el posteio maneje el desafio http-01, ya que actualmente los puertos seguros del pop y del imap me dicen que estan mal los certificados, que son autofirmados.
version: '3.9'
services:
mailserver:
image: analogic/poste.io
container_name: mailserver
restart: unless-stopped
hostname: ${HOSTNAME}
labels:
- traefik.enable=true
- traefik.http.routers.poste-io-acme.entrypoints=web
- traefik.http.routers.poste-io-acme.rule=${TRAEFIK_RULES} && PathPrefix(`/.well-known/acme-challenge/`)
- traefik.http.routers.poste-io-acme.service=poste-io-acme-service
- traefik.http.routers.poste-io-acme.priority=50
- traefik.http.services.poste-io-acme-service.loadbalancer.server.port=80
- traefik.http.routers.poste-io.entrypoints=websecure
- traefik.http.routers.poste-io.rule=(${TRAEFIK_RULES})
- traefik.http.routers.poste-io.service=poste-io-service
- traefik.http.services.poste-io-service.loadbalancer.server.port=80
- traefik.docker.network=proxy
environment:
- HTTPS=OFF
- TZ=America/Havana
- DISABLE_CLAMAV=TRUE
volumes:
- /etc/localtime:/etc/localtime:ro
- ./mail-data:/data
expose:
- 80
ports:
- "25:25"
- "110:110"
- "143:143"
- "587:587"
- "993:993"
- "995:995"
- "4190:4190"
networks:
- mailserver
- proxy
networks:
mailserver:
name: mailserver
proxy:
name: proxy
hasta ahi todo bien, pero cuando intento pasar el reto, desde la configuracion del poste.io recibo este mensaje desde el log de traefik
time="2024-04-02T12:14:55-04:00" level=error msg="Cannot retrieve the ACME challenge for mail.domain.net (token \"ra6HwDDchYE7FjXdbM-qLz6Ft_rveu8klF1XXsWd9w8\")" providerName=acme
y en el panel del Poste, este
[2024-04-02T12:14:50.116507-04:00] LEScript.INFO: ACME Client: analogic-lescript/0.3.0
[2024-04-02T12:14:50.116735-04:00] LEScript.INFO: Getting list of URLs for API
[2024-04-02T12:14:50.527119-04:00] LEScript.INFO: Requesting new nonce for client communication
[2024-04-02T12:14:50.950950-04:00] LEScript.INFO: Account already registered. Continuing.
[2024-04-02T12:14:50.951118-04:00] LEScript.INFO: Sending registration to letsencrypt server
[2024-04-02T12:14:50.967244-04:00] LEScript.INFO: Sending signed request to https://acme-v02.api.letsencrypt.org/acme/new-acct
[2024-04-02T12:14:51.410699-04:00] LEScript.INFO: Account: https://acme-v02.api.letsencrypt.org/acme/acct/1598271317
[2024-04-02T12:14:51.410821-04:00] LEScript.INFO: Starting certificate generation process for domains
[2024-04-02T12:14:51.411074-04:00] LEScript.INFO: Requesting challenge for mail.domain.net
[2024-04-02T12:14:51.427871-04:00] LEScript.INFO: Sending signed request to https://acme-v02.api.letsencrypt.org/acme/new-order
[2024-04-02T12:14:52.204013-04:00] LEScript.INFO: Sending signed request to https://acme-v02.api.letsencrypt.org/acme/authz-v3/333722105157
[2024-04-02T12:14:52.717429-04:00] LEScript.INFO: Got challenge token for mail.domain.net
[2024-04-02T12:14:52.717891-04:00] LEScript.INFO: Token for mail.domain.net saved at /opt/www//.well-known/acme-challenge/ra6HwDDchYE7FjXdbM-qLz6Ft_rveu8klF1XXsWd9w8 and should be available at http://mail.domain.net/.well-known/acme-challenge/ra6HwDDchYE7FjXdbM-qLz6Ft_rveu8klF1XXsWd9w8
[2024-04-02T12:14:52.717936-04:00] LEScript.INFO: Sending request to challenge
[2024-04-02T12:14:52.733983-04:00] LEScript.INFO: Sending signed request to https://acme-v02.api.letsencrypt.org/acme/chall-v3/333722105157/UN1TcA
[2024-04-02T12:14:53.266161-04:00] LEScript.INFO: Verification pending, sleeping 1s
[2024-04-02T12:14:54.282822-04:00] LEScript.INFO: Sending signed request to https://acme-v02.api.letsencrypt.org/acme/chall-v3/333722105157/UN1TcA
[2024-04-02T12:14:54.723015-04:00] LEScript.INFO: Verification pending, sleeping 4s
[2024-04-02T12:14:58.739385-04:00] LEScript.INFO: Sending signed request to https://acme-v02.api.letsencrypt.org/acme/chall-v3/333722105157/UN1TcA
[2024-04-02T12:14:59.256911-04:00] LEScript.ERROR: 400 { "type": "urn:ietf:params:acme:error:malformed", "detail": "Unable to update challenge :: authorization must be pending", "status": 400 }
[2024-04-02T12:14:59.257018-04:00] LEScript.ERROR: #0 /opt/admin/vendor/analogic/lescript/Lescript.php(580): Analogic\ACME\Client->curl()
[2024-04-02T12:14:59.257051-04:00] LEScript.ERROR: #1 /opt/admin/vendor/analogic/lescript/Lescript.php(448): Analogic\ACME\Client->post()
[2024-04-02T12:14:59.257075-04:00] LEScript.ERROR: #2 /opt/admin/vendor/analogic/lescript/Lescript.php(164): Analogic\ACME\Lescript->signedRequest()
[2024-04-02T12:14:59.257097-04:00] LEScript.ERROR: #3 /opt/admin/src/Base/Handler/LeHandler.php(62): Analogic\ACME\Lescript->signDomains()
[2024-04-02T12:14:59.257125-04:00] LEScript.ERROR: #4 /opt/admin/src/Base/Controller/LeController.php(71): App\Base\Handler\LeHandler->renew()
[2024-04-02T12:14:59.257148-04:00] LEScript.ERROR: #5 /opt/admin/vendor/symfony/http-kernel/HttpKernel.php(163): App\Base\Controller\LeController->issueAction()
[2024-04-02T12:14:59.257174-04:00] LEScript.ERROR: #6 /opt/admin/vendor/symfony/http-kernel/HttpKernel.php(75): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
[2024-04-02T12:14:59.257309-04:00] LEScript.ERROR: #7 /opt/admin/vendor/symfony/http-kernel/Kernel.php(202): Symfony\Component\HttpKernel\HttpKernel->handle()
[2024-04-02T12:14:59.257344-04:00] LEScript.ERROR: #8 /opt/admin/public/index.php(24): Symfony\Component\HttpKernel\Kernel->handle()
[2024-04-02T12:14:59.257374-04:00] LEScript.ERROR: #9 {main}
tal parece que traefik esta asumiendo este reto, sin embargo, por el navegador accedi a
http://mail.domain.net/.well-known/acme-challenge/ra6HwDDchYE7FjXdbM-qLz6Ft_rveu8klF1XXsWd9w8
y el reto paso bien, recibi el fichero para descargarlo, con el token dentro y, no escribio nada en el log del traefik, es decir, la regla funciono con el navegador pero no con el LE, debo añadir algo mas las reglas del traefik?
hola como estas? te cuento como lo resolví yo: use un contenedor algo de "certificate extractor" y lo tiré en un volumen compartido entre este contenedor y el poste, al cual lo configuré por variables de entorno para que busque los certificados ahí y funciona de maravillas. Ahora ya migré a kubernetes y lo hago con crd's asi que no preciso mas cert extractor pero si te interesa busco el compose de como lo tenía.
Si, por favor, estoy muy afanado con esto aunque pienso luego pasar a kubernetes, por ahora necesito seguir en esto gracias de antemano
Pues bien, tengo el siguiente problema y no se en que punto se pierde la comunicacion.
Primero que nada tengo que decirles que no estoy utilizando kubernets ya que me manejo con solo 1 servidor en el cual tengo varios contenedores corriendo. Ahora en este servidor estoy intentando hacer correr el servidor de poste.io pero obtengo como respuesta
Internal Server Error
la configuracion para evitar el conflicto entre traefik y poste.io que le di al contenedor de poste.io es:
Si no es mucha molesta en ayudarme en hacer que me permita que ambos trabajen de forma simultanea. Estuve leyendo el issue de nginx y poste.io pero no pude lograr solucionar el problema de proxy inverso con traefik v2
Nota: Deje el puerto 7080 expuesto para ver si estaba corriendo bien y comprendo que al dejar
- HTTPS=ON
en environment hace que me redireccione de forma automatica a HTTPS.