Stripe TLS 1.2 Webhook issueKey generation requirements for TLS ECDHE-ECDSA-AES128-GCM-SHA256Why don't Node.js TLS supported ciphers correspond to the openssl supported ciphers?How to View NodeJS SSL Negotiation ResultsHow to identify and remove CBC ciphers in the CipherSuite?Is ssl_dhparam necessary for nginx when client use the cipher DHE-RSA-AES256-SHA256Python 3.6 SSL - Uses TLSv1.0 instead of TLSv1.2 cipher - (2 way auth and self-signed cert)cURL: SSL certificates on two different Amazon AMI servers not working the samecurl issue with sites that do not support Secure RenegotiationNginx with PhpMyAdmin (Secured via ssl)Firefox throwing SSl_error_no_cypher_overlap error

Packing rectangles: Does rotation ever help?

Is the 5 MB static resource size limit 5,242,880 bytes or 5,000,000 bytes?

What does it mean to express a gate in Dirac notation?

Reducing vertical space in stackrel

What is the most expensive material in the world that could be used to create Pun-Pun's lute?

Why does nature favour the Laplacian?

What are the potential pitfalls when using metals as a currency?

Examples of subgroups where it's nontrivial to show closure under multiplication?

Apply MapThread to all but one variable

what is the sudo password for a --disabled-password user

Minor Revision with suggestion of an alternative proof by reviewer

Is there really no use for MD5 anymore?

Is the claim "Employers won't employ people with no 'social media presence'" realistic?

What is the strongest case that can be made in favour of the UK regaining some control over fishing policy after Brexit?

Is there an official tutorial for installing Ubuntu 18.04+ on a device with an SSD and an additional internal hard drive?

What was the first Intel x86 processor with "Base + Index * Scale + Displacement" addressing mode?

Why do Computer Science majors learn Calculus?

Please, smoke with good manners

Was there a Viking Exchange as well as a Columbian one?

How to solve constants out of the internal energy equation?

Is it possible to determine the symmetric encryption method used by output size?

How could Tony Stark make this in Endgame?

Which big number is bigger?

How to stop co-workers from teasing me because I know Russian?



Stripe TLS 1.2 Webhook issue


Key generation requirements for TLS ECDHE-ECDSA-AES128-GCM-SHA256Why don't Node.js TLS supported ciphers correspond to the openssl supported ciphers?How to View NodeJS SSL Negotiation ResultsHow to identify and remove CBC ciphers in the CipherSuite?Is ssl_dhparam necessary for nginx when client use the cipher DHE-RSA-AES256-SHA256Python 3.6 SSL - Uses TLSv1.0 instead of TLSv1.2 cipher - (2 way auth and self-signed cert)cURL: SSL certificates on two different Amazon AMI servers not working the samecurl issue with sites that do not support Secure RenegotiationNginx with PhpMyAdmin (Secured via ssl)Firefox throwing SSl_error_no_cypher_overlap error






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I am developing an API connected to Stripe using Node.js and express framework. My API is running in a container (FROM node:10.1.0), and I am running the container on a Ubuntu 16 VM using docker-compose:



version: '2.2'

services:
api:
image: my-image:latest
expose:
- 80

nginx:
image: nginx
ports:
- "80:80"
- "443:443"
links:
- api
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf


and with an nginx.conf file:



events 
worker_connections 1024;


http
server
listen 80;

location /
return 301 https://$host$request_uri;



server
listen 443 ssl;

ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-ARIA256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-ARIA128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ARIA256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ARIA128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-CCM:DHE-RSA-AES256-CCM8:DHE-RSA-ARIA256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES128-CCM8:DHE-RSA-ARIA128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384;
ssl_ecdh_curve X25519:secp521r1:secp384r1;
ssl_prefer_server_ciphers on;

try_files $uri $uri/ =404;

location /api/
proxy_pass http://api:80/;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;





When running curl -XPOST https://my.server.com/api/webhook --tlsv1.2 --verbose I get a nice response that looks like TLS 1.2 is working:



* Trying 23.100.121.74...
* TCP_NODELAY set
* Connected to my.server.com (23.100.121.74) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: OU=Domain Control Validated; CN=*.server.com
* start date: Sep 7 16:29:45 2018 GMT
* expire date: Sep 7 16:29:45 2019 GMT
* subjectAltName: host "my.server.com" matched cert's "*.server.com"
* issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
* SSL certificate verify ok.
> POST /api/webhook HTTP/1.1
> Host: my.server.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Server: nginx/1.15.7
< Date: Fri, 22 Mar 2019 17:50:33 GMT
< Content-Type: application/json; charset=utf-8
< Content-Length: 68
< Connection: keep-alive
< X-Powered-By: Express
< Vary: Origin
< ETag: W/"44-HsiDCuzDBw0t2vb7UevWXjyvmIo"
<
* Connection #0 to host api.server.com left intact
"message":"Unable to extract timestamp and signatures from header"


However, I don't receive any webhook on my server (using ngrok locally works) and when checking on the webhook on Stripe plateform, I can see this error for my server webhook trials:



Status Pending (2 tries)
Next retry around 2019/03/22 18:38 (1 attempt left)
Retry history
[2019/03/22 17:08 to https://my.server.com/api/webhook]: (TLS error) ERR
[2019/03/22 17:38 to https://my.server.com/api/webhook]: (TLS error) ERR


I have tried https://support.stripe.com/questions/how-do-i-upgrade-my-openssl-to-support-tls-1-2 on the linux VM but nothing changed. Also https://support.stripe.com/questions/upgrade-your-node-integration-from-tls-1-0-to-tls-1-2 tells me TLS 1.2 is supported so not sure where it goes wrong










share|improve this question




























    0















    I am developing an API connected to Stripe using Node.js and express framework. My API is running in a container (FROM node:10.1.0), and I am running the container on a Ubuntu 16 VM using docker-compose:



    version: '2.2'

    services:
    api:
    image: my-image:latest
    expose:
    - 80

    nginx:
    image: nginx
    ports:
    - "80:80"
    - "443:443"
    links:
    - api
    volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf


    and with an nginx.conf file:



    events 
    worker_connections 1024;


    http
    server
    listen 80;

    location /
    return 301 https://$host$request_uri;



    server
    listen 443 ssl;

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
    ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-ARIA256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-ARIA128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ARIA256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ARIA128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-CCM:DHE-RSA-AES256-CCM8:DHE-RSA-ARIA256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES128-CCM8:DHE-RSA-ARIA128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384;
    ssl_ecdh_curve X25519:secp521r1:secp384r1;
    ssl_prefer_server_ciphers on;

    try_files $uri $uri/ =404;

    location /api/
    proxy_pass http://api:80/;
    proxy_buffering off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;





    When running curl -XPOST https://my.server.com/api/webhook --tlsv1.2 --verbose I get a nice response that looks like TLS 1.2 is working:



    * Trying 23.100.121.74...
    * TCP_NODELAY set
    * Connected to my.server.com (23.100.121.74) port 443 (#0)
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    * CAfile: /etc/ssl/cert.pem
    CApath: none
    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS change cipher, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
    * ALPN, server accepted to use http/1.1
    * Server certificate:
    * subject: OU=Domain Control Validated; CN=*.server.com
    * start date: Sep 7 16:29:45 2018 GMT
    * expire date: Sep 7 16:29:45 2019 GMT
    * subjectAltName: host "my.server.com" matched cert's "*.server.com"
    * issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
    * SSL certificate verify ok.
    > POST /api/webhook HTTP/1.1
    > Host: my.server.com
    > User-Agent: curl/7.54.0
    > Accept: */*
    >
    < HTTP/1.1 400 Bad Request
    < Server: nginx/1.15.7
    < Date: Fri, 22 Mar 2019 17:50:33 GMT
    < Content-Type: application/json; charset=utf-8
    < Content-Length: 68
    < Connection: keep-alive
    < X-Powered-By: Express
    < Vary: Origin
    < ETag: W/"44-HsiDCuzDBw0t2vb7UevWXjyvmIo"
    <
    * Connection #0 to host api.server.com left intact
    "message":"Unable to extract timestamp and signatures from header"


    However, I don't receive any webhook on my server (using ngrok locally works) and when checking on the webhook on Stripe plateform, I can see this error for my server webhook trials:



    Status Pending (2 tries)
    Next retry around 2019/03/22 18:38 (1 attempt left)
    Retry history
    [2019/03/22 17:08 to https://my.server.com/api/webhook]: (TLS error) ERR
    [2019/03/22 17:38 to https://my.server.com/api/webhook]: (TLS error) ERR


    I have tried https://support.stripe.com/questions/how-do-i-upgrade-my-openssl-to-support-tls-1-2 on the linux VM but nothing changed. Also https://support.stripe.com/questions/upgrade-your-node-integration-from-tls-1-0-to-tls-1-2 tells me TLS 1.2 is supported so not sure where it goes wrong










    share|improve this question
























      0












      0








      0








      I am developing an API connected to Stripe using Node.js and express framework. My API is running in a container (FROM node:10.1.0), and I am running the container on a Ubuntu 16 VM using docker-compose:



      version: '2.2'

      services:
      api:
      image: my-image:latest
      expose:
      - 80

      nginx:
      image: nginx
      ports:
      - "80:80"
      - "443:443"
      links:
      - api
      volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf


      and with an nginx.conf file:



      events 
      worker_connections 1024;


      http
      server
      listen 80;

      location /
      return 301 https://$host$request_uri;



      server
      listen 443 ssl;

      ssl_certificate /etc/nginx/ssl/fullchain.pem;
      ssl_certificate_key /etc/nginx/ssl/privkey.pem;
      ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
      ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-ARIA256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-ARIA128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ARIA256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ARIA128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-CCM:DHE-RSA-AES256-CCM8:DHE-RSA-ARIA256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES128-CCM8:DHE-RSA-ARIA128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384;
      ssl_ecdh_curve X25519:secp521r1:secp384r1;
      ssl_prefer_server_ciphers on;

      try_files $uri $uri/ =404;

      location /api/
      proxy_pass http://api:80/;
      proxy_buffering off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;





      When running curl -XPOST https://my.server.com/api/webhook --tlsv1.2 --verbose I get a nice response that looks like TLS 1.2 is working:



      * Trying 23.100.121.74...
      * TCP_NODELAY set
      * Connected to my.server.com (23.100.121.74) port 443 (#0)
      * ALPN, offering h2
      * ALPN, offering http/1.1
      * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
      * successfully set certificate verify locations:
      * CAfile: /etc/ssl/cert.pem
      CApath: none
      * TLSv1.2 (OUT), TLS handshake, Client hello (1):
      * TLSv1.2 (IN), TLS handshake, Server hello (2):
      * TLSv1.2 (IN), TLS handshake, Certificate (11):
      * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
      * TLSv1.2 (IN), TLS handshake, Server finished (14):
      * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
      * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
      * TLSv1.2 (OUT), TLS handshake, Finished (20):
      * TLSv1.2 (IN), TLS change cipher, Client hello (1):
      * TLSv1.2 (IN), TLS handshake, Finished (20):
      * SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
      * ALPN, server accepted to use http/1.1
      * Server certificate:
      * subject: OU=Domain Control Validated; CN=*.server.com
      * start date: Sep 7 16:29:45 2018 GMT
      * expire date: Sep 7 16:29:45 2019 GMT
      * subjectAltName: host "my.server.com" matched cert's "*.server.com"
      * issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
      * SSL certificate verify ok.
      > POST /api/webhook HTTP/1.1
      > Host: my.server.com
      > User-Agent: curl/7.54.0
      > Accept: */*
      >
      < HTTP/1.1 400 Bad Request
      < Server: nginx/1.15.7
      < Date: Fri, 22 Mar 2019 17:50:33 GMT
      < Content-Type: application/json; charset=utf-8
      < Content-Length: 68
      < Connection: keep-alive
      < X-Powered-By: Express
      < Vary: Origin
      < ETag: W/"44-HsiDCuzDBw0t2vb7UevWXjyvmIo"
      <
      * Connection #0 to host api.server.com left intact
      "message":"Unable to extract timestamp and signatures from header"


      However, I don't receive any webhook on my server (using ngrok locally works) and when checking on the webhook on Stripe plateform, I can see this error for my server webhook trials:



      Status Pending (2 tries)
      Next retry around 2019/03/22 18:38 (1 attempt left)
      Retry history
      [2019/03/22 17:08 to https://my.server.com/api/webhook]: (TLS error) ERR
      [2019/03/22 17:38 to https://my.server.com/api/webhook]: (TLS error) ERR


      I have tried https://support.stripe.com/questions/how-do-i-upgrade-my-openssl-to-support-tls-1-2 on the linux VM but nothing changed. Also https://support.stripe.com/questions/upgrade-your-node-integration-from-tls-1-0-to-tls-1-2 tells me TLS 1.2 is supported so not sure where it goes wrong










      share|improve this question














      I am developing an API connected to Stripe using Node.js and express framework. My API is running in a container (FROM node:10.1.0), and I am running the container on a Ubuntu 16 VM using docker-compose:



      version: '2.2'

      services:
      api:
      image: my-image:latest
      expose:
      - 80

      nginx:
      image: nginx
      ports:
      - "80:80"
      - "443:443"
      links:
      - api
      volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf


      and with an nginx.conf file:



      events 
      worker_connections 1024;


      http
      server
      listen 80;

      location /
      return 301 https://$host$request_uri;



      server
      listen 443 ssl;

      ssl_certificate /etc/nginx/ssl/fullchain.pem;
      ssl_certificate_key /etc/nginx/ssl/privkey.pem;
      ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
      ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-ARIA256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-ARIA128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ARIA256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ARIA128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-CCM:DHE-RSA-AES256-CCM8:DHE-RSA-ARIA256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES128-CCM8:DHE-RSA-ARIA128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384;
      ssl_ecdh_curve X25519:secp521r1:secp384r1;
      ssl_prefer_server_ciphers on;

      try_files $uri $uri/ =404;

      location /api/
      proxy_pass http://api:80/;
      proxy_buffering off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;





      When running curl -XPOST https://my.server.com/api/webhook --tlsv1.2 --verbose I get a nice response that looks like TLS 1.2 is working:



      * Trying 23.100.121.74...
      * TCP_NODELAY set
      * Connected to my.server.com (23.100.121.74) port 443 (#0)
      * ALPN, offering h2
      * ALPN, offering http/1.1
      * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
      * successfully set certificate verify locations:
      * CAfile: /etc/ssl/cert.pem
      CApath: none
      * TLSv1.2 (OUT), TLS handshake, Client hello (1):
      * TLSv1.2 (IN), TLS handshake, Server hello (2):
      * TLSv1.2 (IN), TLS handshake, Certificate (11):
      * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
      * TLSv1.2 (IN), TLS handshake, Server finished (14):
      * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
      * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
      * TLSv1.2 (OUT), TLS handshake, Finished (20):
      * TLSv1.2 (IN), TLS change cipher, Client hello (1):
      * TLSv1.2 (IN), TLS handshake, Finished (20):
      * SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
      * ALPN, server accepted to use http/1.1
      * Server certificate:
      * subject: OU=Domain Control Validated; CN=*.server.com
      * start date: Sep 7 16:29:45 2018 GMT
      * expire date: Sep 7 16:29:45 2019 GMT
      * subjectAltName: host "my.server.com" matched cert's "*.server.com"
      * issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
      * SSL certificate verify ok.
      > POST /api/webhook HTTP/1.1
      > Host: my.server.com
      > User-Agent: curl/7.54.0
      > Accept: */*
      >
      < HTTP/1.1 400 Bad Request
      < Server: nginx/1.15.7
      < Date: Fri, 22 Mar 2019 17:50:33 GMT
      < Content-Type: application/json; charset=utf-8
      < Content-Length: 68
      < Connection: keep-alive
      < X-Powered-By: Express
      < Vary: Origin
      < ETag: W/"44-HsiDCuzDBw0t2vb7UevWXjyvmIo"
      <
      * Connection #0 to host api.server.com left intact
      "message":"Unable to extract timestamp and signatures from header"


      However, I don't receive any webhook on my server (using ngrok locally works) and when checking on the webhook on Stripe plateform, I can see this error for my server webhook trials:



      Status Pending (2 tries)
      Next retry around 2019/03/22 18:38 (1 attempt left)
      Retry history
      [2019/03/22 17:08 to https://my.server.com/api/webhook]: (TLS error) ERR
      [2019/03/22 17:38 to https://my.server.com/api/webhook]: (TLS error) ERR


      I have tried https://support.stripe.com/questions/how-do-i-upgrade-my-openssl-to-support-tls-1-2 on the linux VM but nothing changed. Also https://support.stripe.com/questions/upgrade-your-node-integration-from-tls-1-0-to-tls-1-2 tells me TLS 1.2 is supported so not sure where it goes wrong







      node.js docker nginx stripe-payments tls1.2






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 22 at 18:07









      GuillaumeGuillaume

      99522143




      99522143






















          2 Answers
          2






          active

          oldest

          votes


















          0














          Stripe requires valid TLS certificates for HTTPS webhook endpoints and most often these issues occur when your site is missing an intermediate SSL certificate. Specifically, on your SSL Labs results you will see one of the items in the Certificate Path section marked as "Extra download.". You can confirm this here: https://www.ssllabs.com/ssltest/analyze.html



          If you see this issue I recommend visiting your certificate issuer (or the reseller you purchased your certificate from), and re-installing your SSL certificate, including any CA certificate 'bundle' that comes with it. If you're having trouble with this, I'd suggest sharing your SSL Labs results with the issuer and your web host directly, they can guide you in locating this intermediary certificate and resolving this.






          share|improve this answer























          • hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

            – Guillaume
            Mar 23 at 15:53


















          0














          I managed to resolve the issue by using https://whatsmychaincert.com/ to create the missing "chain", then used the following command to add to the certificate taken from the Azure App Service Cerificate:



          cat fullchain.pem example.com.chain.crt > example.com.chained.crt



          and used example.com.chained.crt in nginx for the ssl_certificate instead. Now ssllab is telling me the chain is complete, and Stripe is given me a 200 success






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55305504%2fstripe-tls-1-2-webhook-issue%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Stripe requires valid TLS certificates for HTTPS webhook endpoints and most often these issues occur when your site is missing an intermediate SSL certificate. Specifically, on your SSL Labs results you will see one of the items in the Certificate Path section marked as "Extra download.". You can confirm this here: https://www.ssllabs.com/ssltest/analyze.html



            If you see this issue I recommend visiting your certificate issuer (or the reseller you purchased your certificate from), and re-installing your SSL certificate, including any CA certificate 'bundle' that comes with it. If you're having trouble with this, I'd suggest sharing your SSL Labs results with the issuer and your web host directly, they can guide you in locating this intermediary certificate and resolving this.






            share|improve this answer























            • hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

              – Guillaume
              Mar 23 at 15:53















            0














            Stripe requires valid TLS certificates for HTTPS webhook endpoints and most often these issues occur when your site is missing an intermediate SSL certificate. Specifically, on your SSL Labs results you will see one of the items in the Certificate Path section marked as "Extra download.". You can confirm this here: https://www.ssllabs.com/ssltest/analyze.html



            If you see this issue I recommend visiting your certificate issuer (or the reseller you purchased your certificate from), and re-installing your SSL certificate, including any CA certificate 'bundle' that comes with it. If you're having trouble with this, I'd suggest sharing your SSL Labs results with the issuer and your web host directly, they can guide you in locating this intermediary certificate and resolving this.






            share|improve this answer























            • hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

              – Guillaume
              Mar 23 at 15:53













            0












            0








            0







            Stripe requires valid TLS certificates for HTTPS webhook endpoints and most often these issues occur when your site is missing an intermediate SSL certificate. Specifically, on your SSL Labs results you will see one of the items in the Certificate Path section marked as "Extra download.". You can confirm this here: https://www.ssllabs.com/ssltest/analyze.html



            If you see this issue I recommend visiting your certificate issuer (or the reseller you purchased your certificate from), and re-installing your SSL certificate, including any CA certificate 'bundle' that comes with it. If you're having trouble with this, I'd suggest sharing your SSL Labs results with the issuer and your web host directly, they can guide you in locating this intermediary certificate and resolving this.






            share|improve this answer













            Stripe requires valid TLS certificates for HTTPS webhook endpoints and most often these issues occur when your site is missing an intermediate SSL certificate. Specifically, on your SSL Labs results you will see one of the items in the Certificate Path section marked as "Extra download.". You can confirm this here: https://www.ssllabs.com/ssltest/analyze.html



            If you see this issue I recommend visiting your certificate issuer (or the reseller you purchased your certificate from), and re-installing your SSL certificate, including any CA certificate 'bundle' that comes with it. If you're having trouble with this, I'd suggest sharing your SSL Labs results with the issuer and your web host directly, they can guide you in locating this intermediary certificate and resolving this.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Mar 23 at 0:25









            koopajahkoopajah

            14.9k74782




            14.9k74782












            • hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

              – Guillaume
              Mar 23 at 15:53

















            • hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

              – Guillaume
              Mar 23 at 15:53
















            hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

            – Guillaume
            Mar 23 at 15:53





            hum I see it says "This server's certificate chain is incomplete. Grade capped to B." so I guess that means there is something missing. It's a certificate exported from Azure App Service Certificates, I'll contact them first to see if they can help

            – Guillaume
            Mar 23 at 15:53













            0














            I managed to resolve the issue by using https://whatsmychaincert.com/ to create the missing "chain", then used the following command to add to the certificate taken from the Azure App Service Cerificate:



            cat fullchain.pem example.com.chain.crt > example.com.chained.crt



            and used example.com.chained.crt in nginx for the ssl_certificate instead. Now ssllab is telling me the chain is complete, and Stripe is given me a 200 success






            share|improve this answer



























              0














              I managed to resolve the issue by using https://whatsmychaincert.com/ to create the missing "chain", then used the following command to add to the certificate taken from the Azure App Service Cerificate:



              cat fullchain.pem example.com.chain.crt > example.com.chained.crt



              and used example.com.chained.crt in nginx for the ssl_certificate instead. Now ssllab is telling me the chain is complete, and Stripe is given me a 200 success






              share|improve this answer

























                0












                0








                0







                I managed to resolve the issue by using https://whatsmychaincert.com/ to create the missing "chain", then used the following command to add to the certificate taken from the Azure App Service Cerificate:



                cat fullchain.pem example.com.chain.crt > example.com.chained.crt



                and used example.com.chained.crt in nginx for the ssl_certificate instead. Now ssllab is telling me the chain is complete, and Stripe is given me a 200 success






                share|improve this answer













                I managed to resolve the issue by using https://whatsmychaincert.com/ to create the missing "chain", then used the following command to add to the certificate taken from the Azure App Service Cerificate:



                cat fullchain.pem example.com.chain.crt > example.com.chained.crt



                and used example.com.chained.crt in nginx for the ssl_certificate instead. Now ssllab is telling me the chain is complete, and Stripe is given me a 200 success







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 4 at 14:17









                GuillaumeGuillaume

                99522143




                99522143



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55305504%2fstripe-tls-1-2-webhook-issue%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                    용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

                    155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해