Skip to content
This repository has been archived by the owner on May 9, 2020. It is now read-only.

CaptchaError: captcha v4.0.1 (SSL negotiation) #211

Closed
karnadii opened this issue Apr 30, 2019 · 52 comments · Fixed by #212 or #219
Closed

CaptchaError: captcha v4.0.1 (SSL negotiation) #211

karnadii opened this issue Apr 30, 2019 · 52 comments · Fixed by #212 or #219
Labels

Comments

@karnadii
Copy link

var uri = "https://nanime.in";
  var cloudscraper = require("cloudscraper").defaults({
    headers: {
      Connection: "keep-alive",
      "User-Agent":
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
      Accept:       "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
      "Accept-Language": "en-US,en;q=0.9"
    }
  });

  cloudscraper.get(uri, function(error, response, body) {
    if (error) {
      throw error;
      res.send(error);
      next();
    } else {
      console.log(body);

      res.send(body);
      next();
    }
  });

/media/karnadi/Boice/Proyek/scraper-api/node_modules/request-promise-core/lib/plumbing.js:130
            throw thrownException;
            ^
CaptchaError: captcha

@ghost ghost marked this as a duplicate of #208 Apr 30, 2019
@ghost ghost closed this as completed Apr 30, 2019
@karnadii
Copy link
Author

@pro-src every example i run all of it almost get me error CaptchaError: captcha, I am using node v10.15.3. the url is https://nanime.in. I am clueless of what was the problem.

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii read #208 and let me know if that doesn't make sense to you. I can try to simplify it.

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src u say it is the header, i am using header or not still get the same error, the rest I dont understand, also ArnaudPiroelle upgrade node to v12, i have upgrade it, and still the same error.

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii I'm unable to reproduce the problem using the URL that you provided. Those headers do trigger a reCAPTCHA whereas the default ones do not. Do you have another URL?

@ghost ghost reopened this Apr 30, 2019
@codemanki
Copy link
Owner

@karnadii could you please try rm -rf node_modules, make sure that you have at least 4.0.1 version in your package.json and do npm/yarn install?

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii Also if you enable debugging, you can see which headers are being sent.

const cloudscraper = require('cloudscraper');
cloudscraper.debug = true

Note that upgrading your nodejs version is not necessary. It should work just fine on nodejs v6+ without any accommodations. Although, using the latest stable version of nodejs is always recommended and using brotli is future proofing.

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@codemanki @pro-src still error

Stacktrace
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar: CookieJar { enableLooseMode: true, store: { idx: {} } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
     'Accept-Language': 'en-US,en;q=0.9',
     'Accept-Encoding': 'gzip, deflate' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 3,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/
REQUEST onRequestResponse https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 11:39:20 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=d139a5944da08d29483056940b4813b221556624360; expires=Wed, 29-Apr-20 11:39:20 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf93c101c2aaeff-KIX' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/
REQUEST response end https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 11:39:20 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=d139a5944da08d29483056940b4813b221556624360; expires=Wed, 29-Apr-20 11:39:20 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf93c101c2aaeff-KIX' }
REQUEST end event https://nanime.in/
REQUEST has body https://nanime.in/ 14614
REQUEST emitting complete https://nanime.in/
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar:
      CookieJar {
        enableLooseMode: true,
        store:
         { idx: { 'nanime.in':
   { '/':
      { __cfduid:
         Cookie="__cfduid=d139a5944da08d29483056940b4813b221556624360; Expires=Wed, 29 Apr 2020 11:39:20 GMT; Domain=nanime.in; Path=/; HttpOnly; hostOnly=false; aAge=4052ms; cAge=4052ms" } } } } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
     'Accept-Language': 'en-US,en;q=0.9',
     'Accept-Encoding': 'gzip, deflate',
     Referer: 'https://nanime.in/' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 2,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in/cdn-cgi/l/chk_jschl',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  qs:
   { s:
      'a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0/G7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9/eQMvgk5WfUEZR9hkQA4w==',
     jschl_vc: '3538eb7f4ae4c1bcc92e45466b354462',
     pass: '1556624364.98-dw0RDAVoZq',
     jschl_answer: '30.0161640138' },
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138
REQUEST onRequestResponse https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138 403 { date: 'Tue, 30 Apr 2019 11:39:25 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'cf-chl-bypass': '1',
  'cache-control': 'max-age=2',
  expires: 'Tue, 30 Apr 2019 11:39:27 GMT',
  'x-frame-options': 'SAMEORIGIN',
  server: 'cloudflare',
  'cf-ray': '4cf93c2d2a5caecf-KIX',
  'content-encoding': 'gzip' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138
REQUEST response end https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138 403 { date: 'Tue, 30 Apr 2019 11:39:25 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'cf-chl-bypass': '1',
  'cache-control': 'max-age=2',
  expires: 'Tue, 30 Apr 2019 11:39:27 GMT',
  'x-frame-options': 'SAMEORIGIN',
  server: 'cloudflare',
  'cf-ray': '4cf93c2d2a5caecf-KIX',
  'content-encoding': 'gzip' }
REQUEST end event https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138
REQUEST has body https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138 8183
REQUEST emitting complete https://nanime.in/cdn-cgi/l/chk_jschl?s=a5b5556630242528d4a4e13559020d376298925d-1556624360-1800-AVyPA6TqRaV6xPUWsd0vk8cRI5QMpxUT3gkk43PgotYw6X3PDTL0Q2BdE4OdTpDu0%2FG7zez10NW10cr5ZOBzGdKP78VtepTtNWQLZjBMB3lb9%2FeQMvgk5WfUEZR9hkQA4w%3D%3D&jschl_vc=3538eb7f4ae4c1bcc92e45466b354462&pass=1556624364.98-dw0RDAVoZq&jschl_answer=30.0161640138

/media/karnadi/Boice/Proyek/scraper-api/node_modules/request-promise-core/lib/plumbing.js:130
            throw thrownException;
            ^
CaptchaError: captcha
    at validate (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:231:11)
    at onCloudflareResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:192:5)
    at onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:171:5)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:132:7)
    at Object.onceWrapper (events.js:273:13)
    at Request.emit (events.js:182:13)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:182:13)
    at Gunzip.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:273:13)
    at Gunzip.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1081:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
zsh: exit 1     node a.js

@karnadii
Copy link
Author

the one that I want to scrape is nanime.in, so this is the only url i can provide.

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

using example of rechaptav2

Stacktrace
The url is "https://nanime.in/cdn-cgi/l/chk_jschl?s=7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT%2By0vCOKNc6VQyKZUt8eIA6u1fspb9%2FwNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr%2Bgp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ%3D%3D&jschl_vc=a33b4ee53309095b05f27be7fdbec1aa&pass=1556623325.471-EH1SSD%2Bzm4&jschl_answer=108.2667425162"
The site key is "6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0"
CaptchaError: Error: This is a dummy function
    at submit (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:409:23)
    at /media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:428:9
    at processTicksAndRejections (internal/process/task_queues.js:89:5) {
  name: 'CaptchaError',
  message: 'Error: This is a dummy function',
  cause: Error: This is a dummy function
      at alternative (/media/karnadi/Boice/Proyek/scraper-api/a.js:23:25)
      at onCaptcha (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:419:20)
      at onCloudflareResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:196:14)
      at onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:171:5)
      at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:132:7)
      at Object.onceWrapper (events.js:284:20)
      at Request.emit (events.js:196:13)
      at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1161:10)
      at Request.emit (events.js:196:13)
      at Gunzip.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1083:12)
      at Object.onceWrapper (events.js:284:20)
      at Gunzip.emit (events.js:201:15)
      at endReadableNT (_stream_readable.js:1130:12)
      at processTicksAndRejections (internal/process/task_queues.js:84:17),
  error: Error: This is a dummy function
      at alternative (/media/karnadi/Boice/Proyek/scraper-api/a.js:23:25)
      at onCaptcha (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:419:20)
      at onCloudflareResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:196:14)
      at onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:171:5)
      at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:132:7)
      at Object.onceWrapper (events.js:284:20)
      at Request.emit (events.js:196:13)
      at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1161:10)
      at Request.emit (events.js:196:13)
      at Gunzip.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1083:12)
      at Object.onceWrapper (events.js:284:20)
      at Gunzip.emit (events.js:201:15)
      at endReadableNT (_stream_readable.js:1130:12)
      at processTicksAndRejections (internal/process/task_queues.js:84:17),
  options: {
    requester: [Function: request] {
      get: [Function],
      head: [Function],
      options: [Function],
      post: [Function],
      put: [Function],
      patch: [Function],
      del: [Function],
      delete: [Function],
      jar: [Function],
      cookie: [Function],
      defaults: [Function],
      forever: [Function],
      Request: [Function],
      initParams: [Function: initParams],
      debug: [Getter/Setter],
      bindCLS: [Function: RP$bindCLS]
    },
    jar: RequestJar { _jar: [CookieJar] },
    headers: { Referer: 'https://nanime.in/' },
    cloudflareMaxTimeout: 30000,
    followAllRedirects: true,
    challengesToSolve: 1,
    decodeEmails: false,
    gzip: true,
    onCaptcha: [Function: alternative],
    uri: 'https://nanime.in/cdn-cgi/l/chk_jschl',
    pool: undefined,
    method: 'GET',
    realEncoding: 'utf8',
    encoding: null,
    callback: [Function],
    qs: {
      s: '7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT+y0vCOKNc6VQyKZUt8eIA6u1fspb9/wNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr+gp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ==',
      jschl_vc: 'a33b4ee53309095b05f27be7fdbec1aa',
      pass: '1556623325.471-EH1SSD+zm4',
      jschl_answer: '108.2667425162'
    }
  },
  response: IncomingMessage {
    _readableState: ReadableState {
      objectMode: false,
      highWaterMark: 16384,
      buffer: BufferList { head: null, tail: null, length: 0 },
      length: 0,
      pipes: null,
      pipesCount: 0,
      flowing: false,
      ended: true,
      endEmitted: true,
      reading: false,
      sync: false,
      needReadable: false,
      emittedReadable: false,
      readableListening: false,
      resumeScheduled: false,
      paused: false,
      emitClose: true,
      autoDestroy: false,
      destroyed: false,
      defaultEncoding: 'utf8',
      awaitDrain: 0,
      readingMore: false,
      decoder: null,
      encoding: null
    },
    readable: false,
    _events: [Object: null prototype] { end: [Array], close: [Function] },
    _eventsCount: 2,
    _maxListeners: undefined,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      _SNICallback: null,
      servername: false,
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object],
      _eventsCount: 8,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'nanime.in',
      _readableState: [ReadableState],
      readable: false,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [ClientRequest],
      [Symbol(res)]: null,
      [Symbol(asyncId)]: 94,
      [Symbol(kHandle)]: null,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBytesRead)]: 4540,
      [Symbol(kBytesWritten)]: 501,
      [Symbol(connect-options)]: [Object]
    },
    connection: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      _SNICallback: null,
      servername: false,
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object],
      _eventsCount: 8,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'nanime.in',
      _readableState: [ReadableState],
      readable: false,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [ClientRequest],
      [Symbol(res)]: null,
      [Symbol(asyncId)]: 94,
      [Symbol(kHandle)]: null,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBytesRead)]: 4540,
      [Symbol(kBytesWritten)]: 501,
      [Symbol(connect-options)]: [Object]
    },
    httpVersionMajor: 1,
    httpVersionMinor: 1,
    httpVersion: '1.1',
    complete: true,
    headers: {
      date: 'Tue, 30 Apr 2019 11:22:06 GMT',
      'content-type': 'text/html; charset=UTF-8',
      'transfer-encoding': 'chunked',
      connection: 'close',
      'cf-chl-bypass': '1',
      'cache-control': 'max-age=2',
      expires: 'Tue, 30 Apr 2019 11:22:08 GMT',
      'x-frame-options': 'SAMEORIGIN',
      server: 'cloudflare',
      'cf-ray': '4cf922ce0d66af1d-KIX',
      'content-encoding': 'gzip'
    },
    rawHeaders: [
      'Date',
      'Tue, 30 Apr 2019 11:22:06 GMT',
      'Content-Type',
      'text/html; charset=UTF-8',
      'Transfer-Encoding',
      'chunked',
      'Connection',
      'close',
      'CF-Chl-Bypass',
      '1',
      'Cache-Control',
      'max-age=2',
      'Expires',
      'Tue, 30 Apr 2019 11:22:08 GMT',
      'X-Frame-Options',
      'SAMEORIGIN',
      'Server',
      'cloudflare',
      'CF-RAY',
      '4cf922ce0d66af1d-KIX',
      'Content-Encoding',
      'gzip'
    ],
    trailers: {},
    rawTrailers: [],
    aborted: false,
    upgrade: false,
    url: '',
    method: null,
    statusCode: 403,
    statusMessage: 'Forbidden',
    client: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      _SNICallback: null,
      servername: false,
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object],
      _eventsCount: 8,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'nanime.in',
      _readableState: [ReadableState],
      readable: false,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [ClientRequest],
      [Symbol(res)]: null,
      [Symbol(asyncId)]: 94,
      [Symbol(kHandle)]: null,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBytesRead)]: 4540,
      [Symbol(kBytesWritten)]: 501,
      [Symbol(connect-options)]: [Object]
    },
    _consuming: true,
    _dumped: false,
    req: ClientRequest {
      _events: [Object],
      _eventsCount: 5,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [TLSSocket],
      connection: [TLSSocket],
      _header: 'GET ' +
        '/cdn-cgi/l/chk_jschl?s=7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT%2By0vCOKNc6VQyKZUt8eIA6u1fspb9%2FwNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr%2Bgp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ%3D%3D&jschl_vc=a33b4ee53309095b05f27be7fdbec1aa&pass=1556623325.471-EH1SSD%2Bzm4&jschl_answer=108.2667425162 ' +
        'HTTP/1.1\r' +
        '\nReferer: https://nanime.in/\r' +
        '\nhost: nanime.in\r' +
        '\ncookie: __cfduid=d15ffbaf793e3067e612956793e1242e91556623315\r' +
        '\naccept-encoding: gzip, deflate\r' +
        '\nConnection: close\r' +
        '\n\r' +
        '\n',
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      path: '/cdn-cgi/l/chk_jschl?s=7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT%2By0vCOKNc6VQyKZUt8eIA6u1fspb9%2FwNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr%2Bgp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ%3D%3D&jschl_vc=a33b4ee53309095b05f27be7fdbec1aa&pass=1556623325.471-EH1SSD%2Bzm4&jschl_answer=108.2667425162',
      _ended: true,
      res: [Circular],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      [Symbol(isCorked)]: false,
      [Symbol(outHeadersKey)]: [Object]
    },
    request: Request {
      _events: [Object],
      _eventsCount: 4,
      _maxListeners: undefined,
      requester: [Function],
      headers: [Object],
      cloudflareMaxTimeout: 30000,
      followAllRedirects: true,
      challengesToSolve: 1,
      decodeEmails: false,
      gzip: true,
      onCaptcha: [Function: alternative],
      uri: [Url],
      method: 'GET',
      realEncoding: 'utf8',
      encoding: null,
      callback: [Function],
      readable: true,
      writable: true,
      explicitMethod: true,
      _qs: [Querystring],
      _auth: [Auth],
      _oauth: [OAuth],
      _multipart: [Multipart],
      _redirect: [Redirect],
      _tunnel: [Tunnel],
      _rp_resolve: [Function],
      _rp_reject: [Function],
      _rp_promise: [Promise],
      _rp_callbackOrig: [Function],
      _rp_options: [Object],
      setHeader: [Function],
      hasHeader: [Function],
      getHeader: [Function],
      removeHeader: [Function],
      localAddress: undefined,
      pool: {},
      dests: [],
      __isRequestRequest: true,
      _callback: [Function: RP$callback],
      proxy: null,
      tunnel: true,
      setHost: true,
      originalCookieHeader: undefined,
      _jar: [RequestJar],
      port: 443,
      host: 'nanime.in',
      url: [Url],
      path: '/cdn-cgi/l/chk_jschl?s=7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT%2By0vCOKNc6VQyKZUt8eIA6u1fspb9%2FwNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr%2Bgp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ%3D%3D&jschl_vc=a33b4ee53309095b05f27be7fdbec1aa&pass=1556623325.471-EH1SSD%2Bzm4&jschl_answer=108.2667425162',
      httpModule: [Object],
      agentClass: [Function: Agent],
      agent: [Agent],
      cloudscraper: true,
      _started: true,
      href: 'https://nanime.in/cdn-cgi/l/chk_jschl?s=7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT%2By0vCOKNc6VQyKZUt8eIA6u1fspb9%2FwNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr%2Bgp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ%3D%3D&jschl_vc=a33b4ee53309095b05f27be7fdbec1aa&pass=1556623325.471-EH1SSD%2Bzm4&jschl_answer=108.2667425162',
      req: [ClientRequest],
      ntick: true,
      response: [Circular],
      originalHost: 'nanime.in',
      originalHostHeaderName: 'host',
      responseContent: [Gunzip],
      _ended: true,
      _destdata: true
    },
    toJSON: [Function: responseToJSON],
    caseless: Caseless { dict: [Object] },
    body: <Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 21 2d 2d 5b 69 66 20 6c 74 20 49 45 20 37 5d 3e 20 3c 68 74 6d 6c 20 63 6c 61 73 73 3d 22 6e 6f 2d ... 11619 more bytes>,
    responseStartTime: 1556623326609,
    isCloudflare: true,
    isHTML: true,
    isCaptcha: true,
    challengeForm: '\n  <input type="hidden" name="s" ' +
      'value="e6abcb08d2e1d2a895c35ca7b0673bc57988d33e-1556623326-1800-AffJk0+xRITSF4V90kUjMv4k6tSFd9KFtPXHdFThreQF3bmtVEba3HaW8jWjdXu/kk8giEzoBMXclzK08FKiCmVJTjq/L4jwbFF2Z2jArW1e7+TpM4zevL2z6VRehPob2g/VoRSZUGi71sR9XhP4GtM="></input>\n' +
      '  <script type="text/javascript" ' +
      'src="/cdn-cgi/scripts/cf.challenge.js" data-type="normal"  ' +
      'data-ray="4cf922ce0d66af1d" async ' +
      'data-sitekey="6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0"></script>\n  ' +
      '<div class="g-recaptcha"></div>\n  <noscript id="cf-captcha-bookmark" ' +
      'class="cf-captcha-info">\n    <div><div style="width: 302px">\n      ' +
      '<div>\n        <iframe ' +
      'src="https://www.google.com/recaptcha/api/fallback?k=6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0" ' +
      'frameborder="0" scrolling="no" style="width: 302px; height:422px; ' +
      'border-style: none;"></iframe>\n      </div>\n      <div style="width: ' +
      '300px; border-style: none; bottom: 12px; left: 25px; margin: 0px; ' +
      'padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid ' +
      '#c1c1c1; border-radius: 3px;">\n        <textarea ' +
      'id="g-recaptcha-response" name="g-recaptcha-response" ' +
      'class="g-recaptcha-response" style="width: 250px; height: 40px; ' +
      'border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: ' +
      'none;"></textarea>\n        <input type="submit" ' +
      'value="Submit"></input>\n      </div>\n    </div></div>\n  </noscript>\n',
    captcha: {
      url: 'https://nanime.in/cdn-cgi/l/chk_jschl?s=7bde9c1432c63b8f8e2e19e073d2a9faa5a22aee-1556623321-1800-AXFAykJcuHr6bPu3HT%2By0vCOKNc6VQyKZUt8eIA6u1fspb9%2FwNxTJf5o1yxWzjTdHVdFpZBLMlTxovJU8sQTxx6kr%2Bgp8tCtfVBlroWrQXFHlJSUkcMDAgxodRwUZGb2xQ%3D%3D&jschl_vc=a33b4ee53309095b05f27be7fdbec1aa&pass=1556623325.471-EH1SSD%2Bzm4&jschl_answer=108.2667425162',
      siteKey: '6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0',
      form: [Object],
      submit: [Function: submit]
    }
  }
}

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii The recaptcha example is a dummy function and is not meant to work. It's something that you have to code yourself. I think the reason that you're getting a CAPTCHA in this case would because of an IP related issue. Perhaps the site owner has banned (set a CAPTCHA for) your ASN/ISP or the entire IP range of your country. I can't say for sure. I'd like to have you perform an experiment for me to be on the safe side though. If you don't mind, run this code and paste the results:

var cloudscraper = require('cloudscraper');
var fs = require('fs');

cloudscraper.get('https://www.ssllabs.com/ssltest/viewMyClient.html').then(body => fs.writeFileSync('./results.html', body, 'utf-8'), console.error);

Upload the contents of results.html, pretty please.

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src

results.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html>
<head>
	<title>Qualys SSL Labs - Projects / SSL Client Test</title>

	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

	<link href="/includes/ssllabs.css" rel="styleSheet" type="text/css">
	<link href="/includes/report.css" rel="styleSheet" type="text/css">
	<link href="/includes/main.css" rel="styleSheet" type="text/css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
</head>

<body>


<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MPWDSJ"
                  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MPWDSJ');</script>
<!-- SHA 256 'sha256-b/ES1VZMgjYcvUcvmmSj/qEQTV6gTFugcTmkMS0E0qk='-->
<!-- End Google Tag Manager -->

<div id="page">


    <div id="header">

        <div id="logo">
                        <a href="/index.html" rel="noreferrer"><img src="https://ssllabs.com/images/qualys-ssl-labs-logo.png" width="341"
                height="55" alt="SSL Labs logo" title="SSL Labs logo"></a>
                    </div>

        <div id="navigation">
            <a class="link" href="/index.html" rel="noreferrer">Home</a>
            <a class="link" href="/projects/index.html" rel="noreferrer">Projects</a>
            <a class="link" href="https://www.qualys.com/free-trial/" rel="noreferrer">Qualys Free Trial</a>
            <a class="link" href="/about/contact.html" rel="noreferrer">Contact</a>
        </div>

        <br clear="all" />
    </div>

	<div id="breadcrumbs">
        <b>You are here:&nbsp;</b>
        <a href="/index.html">Home</a>
        	&gt; <a href="/projects/index.html">Projects</a>
        	        	&gt; SSL Client Test 
        		</div>

<div id="main">

	    <div class="floatLeft">
	<div class="reportTitle report-title-style">SSL/TLS Capabilities of Your Browser</div>
    <div class="reportTime width-650"><b>User Agent:</b> Mozilla&#47;5&#46;0&#32;&#40;Macintosh&#59;&#32;Intel&#32;Mac&#32;OS&#32;X&#32;10&#95;11&#95;6&#41;&#32;AppleWebKit&#47;537&#46;36&#32;&#40;KHTML&#44;&#32;like&#32;Gecko&#41;&#32;Chrome&#47;60&#46;0&#46;3112&#46;78&#32;Safari&#47;537&#46;36</div>    </div>
    <div class="floatRight"><br><a href="/ssltest/clients.html">Other User Agents&nbsp;&raquo;</a></div>
    <br clear="all"/>
    
    
    <div align="center">

    
    
    
    <noscript>
        <div id=warningBox class="warning-box-line-height">
        <b>Without JavaScript, the following tests will not run:</b>
        (1) Accurate protocol support, (2) SSL 3 POODLE vulnerability, (3) mixed content handling,
            (4) TLS authentication bug in Apple's products, and (5) the FREAK attack.
        Please enable JavaScript for best results.
        </ul>
        </div>
        <br>
    </noscript>

    
    <div id="mixedCSSHiddenDiv1" class="display-none"></div>
    <div id="mixedCSSHiddenDiv2" class="display-none"></div>
    <iframe src="http://plaintext.ssllabs.com/plaintext/frame.html" class="display-none" width="0" height="0"></iframe>

        <div id="hiddenImagesDiv" class="display-none"></div>
    <div id="protocolSupportDiv" class="display-none"></div>


    
    <div class="reportSection" id="protocolTestDiv">
        <div class="sectionTitle" id="protocolTestHeading">Protocol Support</div>
        <div class="sectionBody">
            <div id="protocolTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking protocol support...</div>
            <div id="protocolTestMsgNotes"></div>
        </div>
    </div>

        <div class="reportSection" id="jamTestDiv">
            <div class="sectionTitle">Logjam Vulnerability</div>
            <div class="sectionBody">
                <div id="jamTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
                <div id="jamTestMsgNotes">
                    For more information about the Logjam attack, please go to
                    <a href="https://weakdh.org">weakdh.org</a>.<br>
                    To test manually, click <a href="https://www.ssllabs.com:10445/">here</a>.
                    Your user agent is not vulnerable if it fails to connect to the site.</div>
            </div>
        </div>

        <div class="reportSection" id="freakTestDiv">
            <div class="sectionTitle">FREAK Vulnerability</div>
            <div class="sectionBody">
                <div id="freakTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
                <div id="freakTestMsgNotes">
                    For more information about the FREAK attack, please go to
                    <a href="https://www.freakattack.com">www.freakattack.com</a>.<br>
                    To test manually, click <a href="https://www.ssllabs.com:10444/">here</a>.
                Your user agent is not vulnerable if it fails to connect to the site.</div>
            </div>
        </div>

    <div class="reportSection" id="ssl3TestDiv">
    <div class="sectionTitle">POODLE Vulnerability</div>
    <div class="sectionBody">
        <div id="ssl3TestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
        <div id="ssl3TestMsgNotes">For more information about the POODLE attack, please read <a href="https://community.qualys.com/blogs/securitylabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack">this blog post</a>.</div>
    </div>
    </div>

    <div class="reportSection" id="ssl2TestDiv">
    <div class="sectionTitle">SSL 2 Protocol Support</div>
    <div class="sectionBody">
        <div id="ssl2TestMsg"><font color="red">Your user agent supports SSL 2. You should upgrade.</font></div>
        <div id="ssl2TestMsgNotes">SSL 2 is a very old, obsolete, and insecure version of the SSL protocol. You can usually disable this protocol
	version in configuration, but modern clients don't support it at all. This really means that you should upgrade your software
	to a better version.</div>
    </div>
    </div>

    <script type="text/javascript" src="/includes/viewClient.js"></script>
    <input id="mainsitehost" type="hidden" value=www.ssllabs.com >
    <input id="plaintextSiteHost" type="hidden" value=plaintext.ssllabs.com >
    <div class="reportSection" id="appleTestDiv">
    <div class="sectionTitle">iOS and OS X TLS Authentication Vulnerability</div>
    <div class="sectionBody">

        <div id="appleTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
        <div id="appleTestMsgNotes">To test manually, <a href="https://www.ssllabs.com:10443">click here</a>. If your
            user agent refuses to connect, you are not vulnerable. This test requires a connection to the SSL Labs
            server on port 10443. A strict outbound firewall might interfere. You should test Safari running on
            iOS or OS X. Chrome and Firefox are not vulnerable, even when running on a vulnerable operating system.
        <a href="https://community.qualys.com/blogs/securitylabs/2014/02/24/ssl-labs-testing-for-apples-tls-authentication-bug"><b>MORE&nbsp;&raquo;</b></a></div>

        <script type="text/javascript" src="/includes/viewClient-appleTest.js"></script>

    </div>
    </div>
    
    <div class="reportSection">
	<div class="sectionTitle">Protocol Features</div>
	<div class="sectionBody">

	<input id="tls13Support" type="hidden" value=-1 >
	<img class="tIcon" src="/images/icon-protocol.png" width="65" height="50">
	<table class="reportTable">
	<thead>
	<tr>
		<td class="tableHead" colspan="2" align="left">Protocols</td>
	</tr>
	</thead>
	<tbody>
	
	
    <tr class="tableRow">
        <td class="tableLeft" id="protocol_tls1_3_label"> TLS 1.3 </td>
        <td class="tableRight" id="protocol_tls1_3">No</td>
    </tr>
    <tr class="tableRow">
        <td class="tableLeft" id="protocol_tls1_2_label">TLS 1.2</td>
        <td class="tableRight" id="protocol_tls1_2">Yes*</td>
    </tr>
	<tr class="tableRow">
		<td class="tableLeft">TLS 1.1</td>
		<td class="tableRight" id="protocol_tls1_1">Yes*</td>
	</tr>
	<tr class="tableRow">
		<td class="tableLeft" id="protocol_tls1_label">TLS 1.0</td>
		<td class="tableRight" id="protocol_tls1">Yes*</td>
	</tr>
	<tr class="tableRow">
		<td class="tableLeft" id="protocol_ssl3_label">SSL 3</td>
		<td class="tableRight" id="protocol_ssl3">Yes*</td>
	</tr>
	<tr class="tableRow">
				<td class="tableLeft" id="protocol_ssl2_label">SSL 2</td>
		<td class="tableRight" id="protocol_ssl2">No</td>			
			</tr>
		
		<noscript>
    <tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(*) Without JavaScript, this test reliably detects only the highest supported protocol.</span>
	</td>
	</tr>
    </noscript>
		
	</tbody>
	</table>
	
	<br><br>
            
    <img class="tIcon" src="/images/icon-cipher.png" width="65" height="50" alt="">
	<table class="reportTable">
		
	<thead>
	<tr>
		<td class="tableHead" colspan="3" align="left">Cipher Suites (in order of preference)</td>
	</tr>
	</thead>
	
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xc02f</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xc02b</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xc030</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xc02c</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0x9e</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA256 (<code>0xc027</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA256 (<code>0x67</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA384 (<code>0xc028</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA256 (<code>0x6b</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;DSS&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xa3</code>)
		     &nbsp; <span class=dhParams>Forward Secrecy<sup>2</sup></span>
		    		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0x9f</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;CHACHA20&#95;POLY1305&#95;SHA256 (<code>0xcca9</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;CHACHA20&#95;POLY1305&#95;SHA256 (<code>0xcca8</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;CHACHA20&#95;POLY1305&#95;SHA256 (<code>0xccaa</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;CCM&#95;8 (<code>0xc0af</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;CCM (<code>0xc0ad</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CCM&#95;8 (<code>0xc0a3</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CCM (<code>0xc09f</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;DSS&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xa2</code>)
		     &nbsp; <span class=dhParams>Forward Secrecy<sup>2</sup></span>
		    		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;CCM&#95;8 (<code>0xc0ae</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;CCM (<code>0xc0ac</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CCM&#95;8 (<code>0xc0a2</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CCM (<code>0xc09e</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA384 (<code>0xc024</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;DSS&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA256 (<code>0x6a</code>)
		     &nbsp; <span class=dhParams>Forward Secrecy<sup>2</sup></span>
		    		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA256 (<code>0xc023</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;DSS&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA256 (<code>0x40</code>)
		     &nbsp; <span class=dhParams>Forward Secrecy<sup>2</sup></span>
		    		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA (<code>0xc00a</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA (<code>0xc014</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA (<code>0x39</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;DSS&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA (<code>0x38</code>)
		     &nbsp; <span class=dhParams>Forward Secrecy<sup>2</sup></span>
		    		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA (<code>0xc009</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA (<code>0xc013</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA (<code>0x33</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;DHE&#95;DSS&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA (<code>0x32</code>)
		     &nbsp; <span class=dhParams>Forward Secrecy<sup>2</sup></span>
		    		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0x9d</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CCM&#95;8 (<code>0xc0a1</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CCM (<code>0xc09d</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0x9c</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CCM&#95;8 (<code>0xc0a0</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CCM (<code>0xc09c</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA256 (<code>0x3d</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA256 (<code>0x3c</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;CBC&#95;SHA (<code>0x35</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;CBC&#95;SHA (<code>0x2f</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;EMPTY&#95;RENEGOTIATION&#95;INFO&#95;SCSV (<code>0xff</code>)</td>
		    <td class="tableRight">-</td>
			</tr>
	
	<tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(1) When a browser supports SSL 2, its SSL 2-only suites are shown
	only on the very first connection to this site. To see the suites,
        close all browser windows, then open this exact page directly. Don't refresh.</span>
	</td>
	</tr>
	
		<tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(2) Cannot be used for Forward Secrecy because they require DSA keys, which are effectively limited to 1024 bits.</span>
	</td>
	</tr>
		
	</table>
	
	<br><br>
	
	<img class="tIcon" src="/images/icon-protocol-details.png" width="65" height="50" alt="">
	<table class="reportTable">
	<thead>
		<tr>
			<td class="tableHead" colspan="2" align="left">Protocol Details</td>
		</tr>
	</thead>
	<tbody>
		<tr class="tableRow">
						<td class="tableLabel" width="250">Server Name Indication (SNI)</td>
			<td class="tableCell">Yes</td>
					</tr>
		
		<tr class="tableRow">
						<td class="tableLabel">Secure Renegotiation</td>
			<td class="tableCell">Yes</td>
					</tr>

				<tr class="tableRow">
			<td class="tableLabel"><font color=green>TLS compression</font></td>
			<td class="tableCell"><font color=green>No</font></td>
		</tr>
		
        		<tr class="tableRow">
			<td class="tableLabel">Session tickets</td>
			<td class="tableCell">Yes</td>
		</tr>
        
		<tr class="tableRow">
						<td class="tableLabel"><font color=#F88017>OCSP stapling</font></td>
			<td class="tableCell"><font color=#F88017>No</font></td>
					</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Signature algorithms</td>
			<td class="tableCell">
									SHA512/RSA,			SHA512/DSA,			SHA512/ECDSA,			SHA384/RSA,			SHA384/DSA,			SHA384/ECDSA,			SHA256/RSA,			SHA256/DSA,			SHA256/ECDSA,			SHA224/RSA,			SHA224/DSA,			SHA224/ECDSA,			SHA1/RSA,			SHA1/DSA,			SHA1/ECDSA						</td>		
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Named Groups</td>
			<td class="tableCell">
									x25519,			secp256r1,			secp521r1,			secp384r1				</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Next Protocol Negotiation</td>
			<td class="tableCell">No</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel" width="250">Application Layer Protocol Negotiation</td>
			<td class="tableCell">No</td>
		</tr>

			    <tr class="tableRow">
    	    <td class="tableLabel"><font color=green>SSL 2 handshake compatibility</font></td>
    	    <td class="tableCell"><font color=green>No</font></td>
    	</tr>
			</tbody>
	</table> 
	
	<br>   
	
	</div>
	</div>

    
    <div class="reportSection display-none" id="mixedDiv">
        <div class="sectionTitle">Mixed Content Handling</div>
        <div class="sectionBody">

            <img class="tIcon" src="/images/icon-misc.png" width="65" height="50">
            <table class="reportTable">
                <thead>
                <tr>
                    <td class="tableHead" colspan="3" align="left">Mixed Content Tests</td>
                </tr>
                </thead>
                <tbody>
                <tr class="tableRow">
                    <td class="tableLeft">Images</td>
                    <td class="tableRight width-100">Passive</td>
                    <td class="tableRight width-100" id="mixedImages">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">CSS</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedCssLink">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">Scripts</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedScripts">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">XMLHttpRequest</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedXhr">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">WebSockets</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedWebSockets">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">Frames</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedFrame">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td colspan="3" align="left">
                        <span class="color666666">(1) These tests might cause a mixed content warning in your browser. That's expected.<br></span>
                        <span class="color666666">(2) If you see a failed test, try to reload the page. If the error persists, please get in touch.</span>
                    </td>
                </tr>
                </tbody>
            </table>

            <br>

            <table class="reportTable report-table-margin">
                <thead>
                <tr>
                    <td class="tableHead" colspan="3" align="left">Related Functionality</td>
                </tr>
                </thead>

                <tbody>
                <tr class="tableRow">
                    <td class="tableLeft">Upgrade Insecure Requests request header (<a href="https://w3c.github.io/webappsec/specs/upgrade/">more info</a>)</td>
                                            <td class="tableRight">Yes</td>
                                    </tr>

                </tbody>
            </table>

        </div>

        </div>
        </div>
    </div>

    <script type="text/javascript" src="/includes/viewClient-clientTest.js"></script>

    
	</div>

          
</div>


</div>

<div id="pageEnd">
<div id="copyright">	
	<table width=1050 border=0 cellpadding=5 cellspacing=0><tr>
	<td class="footer">
    Copyright &copy; 2009-2019 <a href="https://www.qualys.com">Qualys, Inc</A>. All Rights Reserved.
    </td><td align=right class="footer">
    <a href="https://www.ssllabs.com/about/terms.html" rel="noreferrer">Terms and Conditions</a>
    </td></tr>
    <tr>
    <td class="footer">
    <a href="https://www.qualys.com/free-trial/">Try Qualys for free!</a> Experience the award-winning
    <a href="https://www.qualys.com/cloud-platform/">Qualys Cloud Platform</a> and the entire collection of
    <a href="https://www.qualys.com/apps/">Qualys Cloud Apps</a>, including
    <a href="https://www.qualys.com/certview/">certificate security</a> solutions.
    </td></tr>
    </table>
</div>
</div>
</body>
</html>

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii This could very well be an issue with Cloudflare checking the ciphers used during SSL negotiation as your cipher suite list is different from mine. I'd like to rule that out but I'll need a minute to work out a test.

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii Please use this command exactly to run your test:

node --tls-cipher-list='GREASE_3A:GREASE_6A:AES128-GCM-SHA256:AES256-GCM-SHA256:AES256-GCM-SHA384:CHACHA20-POLY1305-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305-SHA256:ECDHE-RSA-CHACHA20-POLY1305-SHA256:ECDHE-RSA-AES128-CBC-SHA:ECDHE-RSA-AES256-CBC-SHA:RSA-AES128-GCM-SHA256:RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:RSA-AES256-SHA:3DES-EDE-CBC' a.js

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src

Stacktrace
➜ node --tls-cipher-list='GREASE_3A:GREASE_6A:AES128-GCM-SHA256:AES256-GCM-SHA256:AES256-GCM-SHA384:CHACHA20-POLY1305-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305-SHA256:ECDHE-RSA-CHACHA20-POLY1305-SHA256:ECDHE-RSA-AES128-CBC-SHA:ECDHE-RSA-AES256-CBC-SHA:RSA-AES128-GCM-SHA256:RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:RSA-AES256-SHA:3DES-EDE-CBC' a.js
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar: CookieJar { enableLooseMode: true, store: { idx: {} } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.40 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
     'Accept-Language': 'en-US,en;q=0.9',
     'Accept-Encoding': 'gzip, deflate' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 3,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/
REQUEST onRequestResponse https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 12:26:15 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=d04a469c10f49205b586473b252f707c71556627175; expires=Wed, 29-Apr-20 12:26:15 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf980c6ac68af0b-KIX' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/
REQUEST response end https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 12:26:15 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=d04a469c10f49205b586473b252f707c71556627175; expires=Wed, 29-Apr-20 12:26:15 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf980c6ac68af0b-KIX' }
REQUEST end event https://nanime.in/
REQUEST has body https://nanime.in/ 12836
REQUEST emitting complete https://nanime.in/
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar:
      CookieJar {
        enableLooseMode: true,
        store:
         { idx: { 'nanime.in':
   { '/':
      { __cfduid:
         Cookie="__cfduid=d04a469c10f49205b586473b252f707c71556627175; Expires=Wed, 29 Apr 2020 12:26:15 GMT; Domain=nanime.in; Path=/; HttpOnly; hostOnly=false; aAge=4178ms; cAge=4178ms" } } } } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.40 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
     'Accept-Language': 'en-US,en;q=0.9',
     'Accept-Encoding': 'gzip, deflate',
     Referer: 'https://nanime.in/' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 2,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in/cdn-cgi/l/chk_jschl',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  qs:
   { s:
      'ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07+3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW+LokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ==',
     jschl_vc: '7edf5fd1b7404c22bbfec341d92ade08',
     pass: '1556627179.463-ATcKwX5ANF',
     jschl_answer: '18.9631045985' },
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985
REQUEST onRequestResponse https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985 403 { date: 'Tue, 30 Apr 2019 12:26:20 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'cf-chl-bypass': '1',
  'cache-control': 'max-age=2',
  expires: 'Tue, 30 Apr 2019 12:26:22 GMT',
  'x-frame-options': 'SAMEORIGIN',
  server: 'cloudflare',
  'cf-ray': '4cf980e4a9c9af03-KIX',
  'content-encoding': 'gzip' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985
REQUEST response end https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985 403 { date: 'Tue, 30 Apr 2019 12:26:20 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'cf-chl-bypass': '1',
  'cache-control': 'max-age=2',
  expires: 'Tue, 30 Apr 2019 12:26:22 GMT',
  'x-frame-options': 'SAMEORIGIN',
  server: 'cloudflare',
  'cf-ray': '4cf980e4a9c9af03-KIX',
  'content-encoding': 'gzip' }
REQUEST end event https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985
REQUEST has body https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985 9314
REQUEST emitting complete https://nanime.in/cdn-cgi/l/chk_jschl?s=ca0af859db59cb1557cd3e84ba12eb8d657127d2-1556627175-1800-AR8ab6j07%2B3JCpY9af2CEznaHgoicg02sUdlTwAe4xb6DMA9QtcJXlPDCXZfGbqSZ5DiCbeOpWwqKrnYNNE7MoMBW%2BLokhHik6l1YLZjei3NNt0ZmGj9xcOhpg04ICbzWQ%3D%3D&jschl_vc=7edf5fd1b7404c22bbfec341d92ade08&pass=1556627179.463-ATcKwX5ANF&jschl_answer=18.9631045985

/media/karnadi/Boice/Proyek/scraper-api/node_modules/request-promise-core/lib/plumbing.js:130
            throw thrownException;
            ^
CaptchaError: captcha
    at validate (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:231:11)
    at onCloudflareResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:192:5)
    at onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:171:5)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:132:7)
    at Object.onceWrapper (events.js:273:13)
    at Request.emit (events.js:182:13)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:182:13)
    at Gunzip.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:273:13)
    at Gunzip.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1081:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
zsh: exit 1     node  a.js

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii 🤔 Please run this code again but with the CLI flag that I provided:

var cloudscraper = require('cloudscraper');
var fs = require('fs');

cloudscraper.get('https://www.ssllabs.com/ssltest/viewMyClient.html').then(body => fs.writeFileSync('./results.html', body, 'utf-8'), console.error);

And please paste the results.

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src

results.html
➜ cat results.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html>
<head>
	<title>Qualys SSL Labs - Projects / SSL Client Test</title>

	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

	<link href="/includes/ssllabs.css" rel="styleSheet" type="text/css">
	<link href="/includes/report.css" rel="styleSheet" type="text/css">
	<link href="/includes/main.css" rel="styleSheet" type="text/css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
</head>

<body>


<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MPWDSJ"
                  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MPWDSJ');</script>
<!-- SHA 256 'sha256-b/ES1VZMgjYcvUcvmmSj/qEQTV6gTFugcTmkMS0E0qk='-->
<!-- End Google Tag Manager -->

<div id="page">


    <div id="header">

        <div id="logo">
                        <a href="/index.html" rel="noreferrer"><img src="https://ssllabs.com/images/qualys-ssl-labs-logo.png" width="341"
                height="55" alt="SSL Labs logo" title="SSL Labs logo"></a>
                    </div>

        <div id="navigation">
            <a class="link" href="/index.html" rel="noreferrer">Home</a>
            <a class="link" href="/projects/index.html" rel="noreferrer">Projects</a>
            <a class="link" href="https://www.qualys.com/free-trial/" rel="noreferrer">Qualys Free Trial</a>
            <a class="link" href="/about/contact.html" rel="noreferrer">Contact</a>
        </div>

        <br clear="all" />
    </div>

	<div id="breadcrumbs">
        <b>You are here:&nbsp;</b>
        <a href="/index.html">Home</a>
        	&gt; <a href="/projects/index.html">Projects</a>
        	        	&gt; SSL Client Test 
        		</div>

<div id="main">

	    <div class="floatLeft">
	<div class="reportTitle report-title-style">SSL/TLS Capabilities of Your Browser</div>
    <div class="reportTime width-650"><b>User Agent:</b> Mozilla&#47;5&#46;0&#32;&#40;Macintosh&#59;&#32;Intel&#32;Mac&#32;OS&#32;X&#32;10&#95;13&#95;6&#41;&#32;AppleWebKit&#47;537&#46;36&#32;&#40;KHTML&#44;&#32;like&#32;Gecko&#41;&#32;Chrome&#47;60&#46;0&#46;3112&#46;78&#32;Safari&#47;537&#46;36</div>    </div>
    <div class="floatRight"><br><a href="/ssltest/clients.html">Other User Agents&nbsp;&raquo;</a></div>
    <br clear="all"/>
    
    
    <div align="center">

    
    
    
    <noscript>
        <div id=warningBox class="warning-box-line-height">
        <b>Without JavaScript, the following tests will not run:</b>
        (1) Accurate protocol support, (2) SSL 3 POODLE vulnerability, (3) mixed content handling,
            (4) TLS authentication bug in Apple's products, and (5) the FREAK attack.
        Please enable JavaScript for best results.
        </ul>
        </div>
        <br>
    </noscript>

    
    <div id="mixedCSSHiddenDiv1" class="display-none"></div>
    <div id="mixedCSSHiddenDiv2" class="display-none"></div>
    <iframe src="http://plaintext.ssllabs.com/plaintext/frame.html" class="display-none" width="0" height="0"></iframe>

        <div id="hiddenImagesDiv" class="display-none"></div>
    <div id="protocolSupportDiv" class="display-none"></div>


    
    <div class="reportSection" id="protocolTestDiv">
        <div class="sectionTitle" id="protocolTestHeading">Protocol Support</div>
        <div class="sectionBody">
            <div id="protocolTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking protocol support...</div>
            <div id="protocolTestMsgNotes"></div>
        </div>
    </div>

        <div class="reportSection" id="jamTestDiv">
            <div class="sectionTitle">Logjam Vulnerability</div>
            <div class="sectionBody">
                <div id="jamTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
                <div id="jamTestMsgNotes">
                    For more information about the Logjam attack, please go to
                    <a href="https://weakdh.org">weakdh.org</a>.<br>
                    To test manually, click <a href="https://www.ssllabs.com:10445/">here</a>.
                    Your user agent is not vulnerable if it fails to connect to the site.</div>
            </div>
        </div>

        <div class="reportSection" id="freakTestDiv">
            <div class="sectionTitle">FREAK Vulnerability</div>
            <div class="sectionBody">
                <div id="freakTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
                <div id="freakTestMsgNotes">
                    For more information about the FREAK attack, please go to
                    <a href="https://www.freakattack.com">www.freakattack.com</a>.<br>
                    To test manually, click <a href="https://www.ssllabs.com:10444/">here</a>.
                Your user agent is not vulnerable if it fails to connect to the site.</div>
            </div>
        </div>

    <div class="reportSection" id="ssl3TestDiv">
    <div class="sectionTitle">POODLE Vulnerability</div>
    <div class="sectionBody">
        <div id="ssl3TestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
        <div id="ssl3TestMsgNotes">For more information about the POODLE attack, please read <a href="https://community.qualys.com/blogs/securitylabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack">this blog post</a>.</div>
    </div>
    </div>

    <div class="reportSection" id="ssl2TestDiv">
    <div class="sectionTitle">SSL 2 Protocol Support</div>
    <div class="sectionBody">
        <div id="ssl2TestMsg"><font color="red">Your user agent supports SSL 2. You should upgrade.</font></div>
        <div id="ssl2TestMsgNotes">SSL 2 is a very old, obsolete, and insecure version of the SSL protocol. You can usually disable this protocol
	version in configuration, but modern clients don't support it at all. This really means that you should upgrade your software
	to a better version.</div>
    </div>
    </div>

    <script type="text/javascript" src="/includes/viewClient.js"></script>
    <input id="mainsitehost" type="hidden" value=www.ssllabs.com >
    <input id="plaintextSiteHost" type="hidden" value=plaintext.ssllabs.com >
    <div class="reportSection" id="appleTestDiv">
    <div class="sectionTitle">iOS and OS X TLS Authentication Vulnerability</div>
    <div class="sectionBody">

        <div id="appleTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
        <div id="appleTestMsgNotes">To test manually, <a href="https://www.ssllabs.com:10443">click here</a>. If your
            user agent refuses to connect, you are not vulnerable. This test requires a connection to the SSL Labs
            server on port 10443. A strict outbound firewall might interfere. You should test Safari running on
            iOS or OS X. Chrome and Firefox are not vulnerable, even when running on a vulnerable operating system.
        <a href="https://community.qualys.com/blogs/securitylabs/2014/02/24/ssl-labs-testing-for-apples-tls-authentication-bug"><b>MORE&nbsp;&raquo;</b></a></div>

        <script type="text/javascript" src="/includes/viewClient-appleTest.js"></script>

    </div>
    </div>
    
    <div class="reportSection">
	<div class="sectionTitle">Protocol Features</div>
	<div class="sectionBody">

	<input id="tls13Support" type="hidden" value=-1 >
	<img class="tIcon" src="/images/icon-protocol.png" width="65" height="50">
	<table class="reportTable">
	<thead>
	<tr>
		<td class="tableHead" colspan="2" align="left">Protocols</td>
	</tr>
	</thead>
	<tbody>
	
	
    <tr class="tableRow">
        <td class="tableLeft" id="protocol_tls1_3_label"> TLS 1.3 </td>
        <td class="tableRight" id="protocol_tls1_3">No</td>
    </tr>
    <tr class="tableRow">
        <td class="tableLeft" id="protocol_tls1_2_label">TLS 1.2</td>
        <td class="tableRight" id="protocol_tls1_2">Yes*</td>
    </tr>
	<tr class="tableRow">
		<td class="tableLeft">TLS 1.1</td>
		<td class="tableRight" id="protocol_tls1_1">Yes*</td>
	</tr>
	<tr class="tableRow">
		<td class="tableLeft" id="protocol_tls1_label">TLS 1.0</td>
		<td class="tableRight" id="protocol_tls1">Yes*</td>
	</tr>
	<tr class="tableRow">
		<td class="tableLeft" id="protocol_ssl3_label">SSL 3</td>
		<td class="tableRight" id="protocol_ssl3">Yes*</td>
	</tr>
	<tr class="tableRow">
				<td class="tableLeft" id="protocol_ssl2_label">SSL 2</td>
		<td class="tableRight" id="protocol_ssl2">No</td>			
			</tr>
		
		<noscript>
    <tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(*) Without JavaScript, this test reliably detects only the highest supported protocol.</span>
	</td>
	</tr>
    </noscript>
		
	</tbody>
	</table>
	
	<br><br>
            
    <img class="tIcon" src="/images/icon-cipher.png" width="65" height="50" alt="">
	<table class="reportTable">
		
	<thead>
	<tr>
		<td class="tableHead" colspan="3" align="left">Cipher Suites (in order of preference)</td>
	</tr>
	</thead>
	
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0x9c</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0x9d</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xc02b</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xc02f</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xc02c</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xc030</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;EMPTY&#95;RENEGOTIATION&#95;INFO&#95;SCSV (<code>0xff</code>)</td>
		    <td class="tableRight">-</td>
			</tr>
	
	<tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(1) When a browser supports SSL 2, its SSL 2-only suites are shown
	only on the very first connection to this site. To see the suites,
        close all browser windows, then open this exact page directly. Don't refresh.</span>
	</td>
	</tr>
	
		
	</table>
	
	<br><br>
	
	<img class="tIcon" src="/images/icon-protocol-details.png" width="65" height="50" alt="">
	<table class="reportTable">
	<thead>
		<tr>
			<td class="tableHead" colspan="2" align="left">Protocol Details</td>
		</tr>
	</thead>
	<tbody>
		<tr class="tableRow">
						<td class="tableLabel" width="250">Server Name Indication (SNI)</td>
			<td class="tableCell">Yes</td>
					</tr>
		
		<tr class="tableRow">
						<td class="tableLabel">Secure Renegotiation</td>
			<td class="tableCell">Yes</td>
					</tr>

				<tr class="tableRow">
			<td class="tableLabel"><font color=green>TLS compression</font></td>
			<td class="tableCell"><font color=green>No</font></td>
		</tr>
		
        		<tr class="tableRow">
			<td class="tableLabel">Session tickets</td>
			<td class="tableCell">Yes</td>
		</tr>
        
		<tr class="tableRow">
						<td class="tableLabel"><font color=#F88017>OCSP stapling</font></td>
			<td class="tableCell"><font color=#F88017>No</font></td>
					</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Signature algorithms</td>
			<td class="tableCell">
									SHA512/RSA,			SHA512/DSA,			SHA512/ECDSA,			SHA384/RSA,			SHA384/DSA,			SHA384/ECDSA,			SHA256/RSA,			SHA256/DSA,			SHA256/ECDSA,			SHA224/RSA,			SHA224/DSA,			SHA224/ECDSA,			SHA1/RSA,			SHA1/DSA,			SHA1/ECDSA						</td>		
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Named Groups</td>
			<td class="tableCell">
									x25519,			secp256r1,			secp521r1,			secp384r1				</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Next Protocol Negotiation</td>
			<td class="tableCell">No</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel" width="250">Application Layer Protocol Negotiation</td>
			<td class="tableCell">No</td>
		</tr>

			    <tr class="tableRow">
    	    <td class="tableLabel"><font color=green>SSL 2 handshake compatibility</font></td>
    	    <td class="tableCell"><font color=green>No</font></td>
    	</tr>
			</tbody>
	</table> 
	
	<br>   
	
	</div>
	</div>

    
    <div class="reportSection display-none" id="mixedDiv">
        <div class="sectionTitle">Mixed Content Handling</div>
        <div class="sectionBody">

            <img class="tIcon" src="/images/icon-misc.png" width="65" height="50">
            <table class="reportTable">
                <thead>
                <tr>
                    <td class="tableHead" colspan="3" align="left">Mixed Content Tests</td>
                </tr>
                </thead>
                <tbody>
                <tr class="tableRow">
                    <td class="tableLeft">Images</td>
                    <td class="tableRight width-100">Passive</td>
                    <td class="tableRight width-100" id="mixedImages">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">CSS</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedCssLink">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">Scripts</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedScripts">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">XMLHttpRequest</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedXhr">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">WebSockets</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedWebSockets">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">Frames</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedFrame">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td colspan="3" align="left">
                        <span class="color666666">(1) These tests might cause a mixed content warning in your browser. That's expected.<br></span>
                        <span class="color666666">(2) If you see a failed test, try to reload the page. If the error persists, please get in touch.</span>
                    </td>
                </tr>
                </tbody>
            </table>

            <br>

            <table class="reportTable report-table-margin">
                <thead>
                <tr>
                    <td class="tableHead" colspan="3" align="left">Related Functionality</td>
                </tr>
                </thead>

                <tbody>
                <tr class="tableRow">
                    <td class="tableLeft">Upgrade Insecure Requests request header (<a href="https://w3c.github.io/webappsec/specs/upgrade/">more info</a>)</td>
                                            <td class="tableRight">Yes</td>
                                    </tr>

                </tbody>
            </table>

        </div>

        </div>
        </div>
    </div>

    <script type="text/javascript" src="/includes/viewClient-clientTest.js"></script>

    
	</div>

          
</div>


</div>

<div id="pageEnd">
<div id="copyright">	
	<table width=1050 border=0 cellpadding=5 cellspacing=0><tr>
	<td class="footer">
    Copyright &copy; 2009-2019 <a href="https://www.qualys.com">Qualys, Inc</A>. All Rights Reserved.
    </td><td align=right class="footer">
    <a href="https://www.ssllabs.com/about/terms.html" rel="noreferrer">Terms and Conditions</a>
    </td></tr>
    <tr>
    <td class="footer">
    <a href="https://www.qualys.com/free-trial/">Try Qualys for free!</a> Experience the award-winning
    <a href="https://www.qualys.com/cloud-platform/">Qualys Cloud Platform</a> and the entire collection of
    <a href="https://www.qualys.com/apps/">Qualys Cloud Apps</a>, including
    <a href="https://www.qualys.com/certview/">certificate security</a> solutions.
    </td></tr>
    </table>
</div>
</div>
</body>
</html>

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii I'd like to think that we ruled it out and that it is indeed just an IP problem but I can't say for sure due to some differences that persisted even when specifying the same ciphers. 😕

@VeNoMouS any thoughts?

Mine

localhost_8000_results html

Yours

localhost_8000_that html

@ghost ghost marked this as not a duplicate of #208 Apr 30, 2019
@ghost ghost removed the duplicate label Apr 30, 2019
@ghost
Copy link

ghost commented Apr 30, 2019

The only thing I can think of, if it's not an IP issue, is that they're checking the signature algorithms:

The TLSv1.2 protocol made the signature algorithm and the hash algorithm that are used for digital signatures an independent attribute. Previously the negotiated cipher suite determined these algorithms.

I'm not sure how to tell node to change that right at the moment.
@karnadii Can you try from another system on the same network to rule out an IP issue? That would be awesome if you could.

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii Actually, just try your web browser... If it works there than it's not an IP issue. 😆
Meaning, if you don't get a CAPTCHA, it works.

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src it work from my browser, as usual cloudflare 5 second chalenge(no CAPTCHA) then redirect to the https://nanime.in/. I dont have another device.

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii I've been aware of this issue but I didn't think nodejs was affected until now. It's clear that Cloudflare is putting the SSL negotiation under a microscope. Thanks for helping identify this problem!

@ghost ghost added bug and removed question labels Apr 30, 2019
@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

it is the same, I have tried both with "/" and without.
running the same code with different time, and different error

Stacktrace
    karnadi-PC   …/scraper-api    master  ▓▒░                                                                                                              ░▒▓    10.4   20:04:16  
➜ node a.js
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar: CookieJar { enableLooseMode: true, store: { idx: {} } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
     'Accept-Language': 'en-US,en;q=0.8',
     'Accept-Encoding': 'gzip, deflate' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 3,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/
REQUEST onRequestResponse https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 13:05:06 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=da4df305fc9f93e92e89c1b1af5cc96931556629506; expires=Wed, 29-Apr-20 13:05:06 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf9b9acb912aec3-KIX' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/
REQUEST response end https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 13:05:06 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=da4df305fc9f93e92e89c1b1af5cc96931556629506; expires=Wed, 29-Apr-20 13:05:06 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf9b9acb912aec3-KIX' }
REQUEST end event https://nanime.in/
REQUEST has body https://nanime.in/ 14145
REQUEST emitting complete https://nanime.in/
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar:
      CookieJar {
        enableLooseMode: true,
        store:
         { idx: { 'nanime.in':
   { '/':
      { __cfduid:
         Cookie="__cfduid=da4df305fc9f93e92e89c1b1af5cc96931556629506; Expires=Wed, 29 Apr 2020 13:05:06 GMT; Domain=nanime.in; Path=/; HttpOnly; hostOnly=false; aAge=4078ms; cAge=4078ms" } } } } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
     'Accept-Language': 'en-US,en;q=0.8',
     'Accept-Encoding': 'gzip, deflate',
     Referer: 'https://nanime.in/' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 2,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in/cdn-cgi/l/chk_jschl',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  qs:
   { s:
      '6bd6d6db4ca7ea33aa630c51d179a398ee24bad1-1556629506-1800-AXw67/v1fyB9RCrJR+cfXOno19WwBOz0cAznjwTdqzOtw7H79km0Fsk7BL0qvtMy+b0ZGgFeYfxAQAOgzqUW4qSFku1L6W2858HicdmdFFYe/S34hTiDuQkPaAWOU5J0Vw==',
     jschl_vc: '7b37bbc48fbd1495c2272fd3f2d79ecd',
     pass: '1556629510.038-1LmAjcSW4d',
     jschl_answer: '221.2451390938' },
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/cdn-cgi/l/chk_jschl?s=6bd6d6db4ca7ea33aa630c51d179a398ee24bad1-1556629506-1800-AXw67%2Fv1fyB9RCrJR%2BcfXOno19WwBOz0cAznjwTdqzOtw7H79km0Fsk7BL0qvtMy%2Bb0ZGgFeYfxAQAOgzqUW4qSFku1L6W2858HicdmdFFYe%2FS34hTiDuQkPaAWOU5J0Vw%3D%3D&jschl_vc=7b37bbc48fbd1495c2272fd3f2d79ecd&pass=1556629510.038-1LmAjcSW4d&jschl_answer=221.2451390938
REQUEST onRequestResponse https://nanime.in/cdn-cgi/l/chk_jschl?s=6bd6d6db4ca7ea33aa630c51d179a398ee24bad1-1556629506-1800-AXw67%2Fv1fyB9RCrJR%2BcfXOno19WwBOz0cAznjwTdqzOtw7H79km0Fsk7BL0qvtMy%2Bb0ZGgFeYfxAQAOgzqUW4qSFku1L6W2858HicdmdFFYe%2FS34hTiDuQkPaAWOU5J0Vw%3D%3D&jschl_vc=7b37bbc48fbd1495c2272fd3f2d79ecd&pass=1556629510.038-1LmAjcSW4d&jschl_answer=221.2451390938 302 { date: 'Tue, 30 Apr 2019 13:05:10 GMT',
  'content-type': 'text/html',
  'content-length': '159',
  connection: 'keep-alive',
  location: 'https:/nanime.in/',
  server: 'cloudflare',
  'cf-ray': '4cf9b9ca6de0af17-KIX',
  'x-frame-options': 'SAMEORIGIN' }
REQUEST redirect https:/nanime.in/
REQUEST redirect to https:/nanime.in/
REQUEST {}

/media/karnadi/Boice/Proyek/scraper-api/node_modules/request-promise-core/lib/plumbing.js:130
            throw thrownException;
            ^
RequestError: Error: Invalid URI "https:/nanime.in/". This can be caused by a crappy redirection.
    at onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:148:21)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:127:7)
    at Object.onceWrapper (events.js:273:13)
    at Request.emit (events.js:182:13)
    at Request.init (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:273:17)
    at Request.RP$initInterceptor [as init] (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request-promise-core/configure/request2.js:45:29)
    at Redirect.onResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/lib/redirect.js:149:11)
    at Request.onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:993:22)
    at ClientRequest.emit (events.js:182:13)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:546:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
    at TLSSocket.socketOnData (_http_client.js:432:20)
    at TLSSocket.emit (events.js:182:13)
    at addChunk (_stream_readable.js:283:12)
    at readableAddChunk (_stream_readable.js:264:11)
    at TLSSocket.Readable.push (_stream_readable.js:219:10)
    at TLSWrap.onread (net.js:639:20)
zsh: exit 1     node a.js

    karnadi-PC   …/scraper-api    master  ▓▒░                                                                                                              ░▒▓    14.0   20:05:12  
➜ node a.js
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar: CookieJar { enableLooseMode: true, store: { idx: {} } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
     'Accept-Language': 'en-US,en;q=0.9',
     'Accept-Encoding': 'gzip, deflate' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 3,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/
REQUEST onRequestResponse https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 13:10:17 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=d626ca5cedf2364598147ffacb31bf9551556629817; expires=Wed, 29-Apr-20 13:10:17 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf9c146cf3faec7-KIX' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/
REQUEST response end https://nanime.in/ 503 { date: 'Tue, 30 Apr 2019 13:10:17 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=d626ca5cedf2364598147ffacb31bf9551556629817; expires=Wed, 29-Apr-20 13:10:17 GMT; path=/; domain=.nanime.in; HttpOnly' ],
  'x-frame-options': 'SAMEORIGIN',
  'cache-control': 'no-cache',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare',
  'cf-ray': '4cf9c146cf3faec7-KIX' }
REQUEST end event https://nanime.in/
REQUEST has body https://nanime.in/ 8725
REQUEST emitting complete https://nanime.in/
REQUEST { requester:
   { [Function: request]
     get: [Function],
     head: [Function],
     options: [Function],
     post: [Function],
     put: [Function],
     patch: [Function],
     del: [Function],
     delete: [Function],
     jar: [Function],
     cookie: [Function],
     defaults: [Function],
     forever: [Function],
     Request:
      { [Function: Request]
        super_: [Function],
        debug: true,
        defaultProxyHeaderWhiteList: [Array],
        defaultProxyHeaderExclusiveList: [Array] },
     initParams: [Function: initParams],
     debug: [Getter/Setter],
     bindCLS: [Function: RP$bindCLS] },
  jar:
   RequestJar {
     _jar:
      CookieJar {
        enableLooseMode: true,
        store:
         { idx: { 'nanime.in':
   { '/':
      { __cfduid:
         Cookie="__cfduid=d626ca5cedf2364598147ffacb31bf9551556629817; Expires=Wed, 29 Apr 2020 13:10:17 GMT; Domain=nanime.in; Path=/; HttpOnly; hostOnly=false; aAge=4091ms; cAge=4091ms" } } } } } },
  headers:
   { Host: Symbol(host),
     Connection: 'keep-alive',
     'Upgrade-Insecure-Requests': '1',
     'User-Agent':
      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
     Accept:
      'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
     'Accept-Language': 'en-US,en;q=0.9',
     'Accept-Encoding': 'gzip, deflate',
     Referer: 'https://nanime.in/' },
  cloudflareMaxTimeout: 30000,
  followAllRedirects: true,
  challengesToSolve: 2,
  decodeEmails: false,
  gzip: true,
  uri: 'https://nanime.in/cdn-cgi/l/chk_jschl',
  callback: [Function: RP$callback],
  method: 'GET',
  realEncoding: 'utf8',
  encoding: null,
  qs:
   { s:
      '4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp+qobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU+lRi6ED+5Q==',
     jschl_vc: '99043223a6c023364faaca49579656fd',
     pass: '1556629821.411-aq2NQAOiBE',
     jschl_answer: '228.7918033774' },
  transform: undefined,
  simple: true,
  resolveWithFullResponse: false,
  transform2xxOnly: false }
REQUEST make request https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774
REQUEST onRequestResponse https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774 403 { date: 'Tue, 30 Apr 2019 13:10:22 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'cf-chl-bypass': '1',
  'cache-control': 'max-age=2',
  expires: 'Tue, 30 Apr 2019 13:10:24 GMT',
  'x-frame-options': 'SAMEORIGIN',
  server: 'cloudflare',
  'cf-ray': '4cf9c1645953aec3-KIX',
  'content-encoding': 'gzip' }
REQUEST reading response's body
REQUEST finish init function https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774
REQUEST response end https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774 403 { date: 'Tue, 30 Apr 2019 13:10:22 GMT',
  'content-type': 'text/html; charset=UTF-8',
  'transfer-encoding': 'chunked',
  connection: 'close',
  'cf-chl-bypass': '1',
  'cache-control': 'max-age=2',
  expires: 'Tue, 30 Apr 2019 13:10:24 GMT',
  'x-frame-options': 'SAMEORIGIN',
  server: 'cloudflare',
  'cf-ray': '4cf9c1645953aec3-KIX',
  'content-encoding': 'gzip' }
REQUEST end event https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774
REQUEST has body https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774 9852
REQUEST emitting complete https://nanime.in/cdn-cgi/l/chk_jschl?s=4a73c5532dc60acefd2a7a8851355bbbf09114ed-1556629817-1800-AWQeqv99sckrHPGP8K3BA9ktJxy5mVyYBfGAgpIskGK3Wxw5bhOlvXFe5FK9DoRlVuwnv28ASp%2BqobZpetlzDZqK1SD5cHRO2hP3zcigVOmYVTYRBmhB6rXU%2BlRi6ED%2B5Q%3D%3D&jschl_vc=99043223a6c023364faaca49579656fd&pass=1556629821.411-aq2NQAOiBE&jschl_answer=228.7918033774

/media/karnadi/Boice/Proyek/scraper-api/node_modules/request-promise-core/lib/plumbing.js:130
            throw thrownException;
            ^
CaptchaError: captcha
    at validate (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:231:11)
    at onCloudflareResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:192:5)
    at onRequestResponse (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:171:5)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/cloudscraper/index.js:132:7)
    at Object.onceWrapper (events.js:273:13)
    at Request.emit (events.js:182:13)
    at Request.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:182:13)
    at Gunzip.<anonymous> (/media/karnadi/Boice/Proyek/scraper-api/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:273:13)
    at Gunzip.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1081:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
zsh: exit 1     node a.js

    karnadi-PC   …/scraper-api    master  ▓▒░                                                                                                               ░▒▓    8.4   20:10:22  
➜ 

@ghost
Copy link

ghost commented Apr 30, 2019

Probably really was just a bogus redirect: https://github.com/request/request/blob/master/request.js#L269

@karnadii
Copy link
Author

node v10.8.0, how to find libss version?

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii node -e 'console.log(process.versions)'

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

oh god, i switch to node v12.1.0 and now it work...

@ghost
Copy link

ghost commented Apr 30, 2019

This is my process info:

{ http_parser: '2.8.0',
  node: '10.15.2',
  v8: '6.8.275.32-node.12',
  uv: '1.24.1',
  zlib: '1.2.11',
  ares: '1.14.0',
  modules: '64',
  nghttp2: '1.37.0',
  napi: '3',
  openssl: '1.1.1b',
  icu: '63.1',
  unicode: '11.0',
  cldr: '34.0',
  tz: '2018e' }

I don't have brotli installed.

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii Please run this one last time so we can do a comparison.

CLI flag from earlier #211 (comment)
And code from earlier #211 (comment)

I'm really glad that you got it working :)

@karnadii
Copy link
Author

not working v10{ http_parser: '2.8.0',
node: '10.8.0',
v8: '6.7.288.49-node.19',
uv: '1.22.0',
zlib: '1.2.11',
ares: '1.14.0',
modules: '64',
nghttp2: '1.32.0',
napi: '3',
openssl: '1.1.0h',
icu: '62.1',
unicode: '11.0',
cldr: '33.1',
tz: '2018e' }

working v12 {
node: '12.1.0',
v8: '7.4.288.21-node.16',
uv: '1.28.0',
zlib: '1.2.11',
brotli: '1.0.7',
ares: '1.15.0',
modules: '72',
nghttp2: '1.38.0',
napi: '4',
llhttp: '1.1.1',
http_parser: '2.8.0',
openssl: '1.1.1b',
cldr: '35.1',
icu: '64.2',
tz: '2019a',
unicode: '12.1'
}

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src

results.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html>
<head>
	<title>Qualys SSL Labs - Projects / SSL Client Test</title>

	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

	<link href="/includes/ssllabs.css" rel="styleSheet" type="text/css">
	<link href="/includes/report.css" rel="styleSheet" type="text/css">
	<link href="/includes/main.css" rel="styleSheet" type="text/css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
</head>

<body>


<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MPWDSJ"
                  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MPWDSJ');</script>
<!-- SHA 256 'sha256-b/ES1VZMgjYcvUcvmmSj/qEQTV6gTFugcTmkMS0E0qk='-->
<!-- End Google Tag Manager -->

<div id="page">


    <div id="header">

        <div id="logo">
                        <a href="/index.html" rel="noreferrer"><img src="https://ssllabs.com/images/qualys-ssl-labs-logo.png" width="341"
                height="55" alt="SSL Labs logo" title="SSL Labs logo"></a>
                    </div>

        <div id="navigation">
            <a class="link" href="/index.html" rel="noreferrer">Home</a>
            <a class="link" href="/projects/index.html" rel="noreferrer">Projects</a>
            <a class="link" href="https://www.qualys.com/free-trial/" rel="noreferrer">Qualys Free Trial</a>
            <a class="link" href="/about/contact.html" rel="noreferrer">Contact</a>
        </div>

        <br clear="all" />
    </div>

	<div id="breadcrumbs">
        <b>You are here:&nbsp;</b>
        <a href="/index.html">Home</a>
        	&gt; <a href="/projects/index.html">Projects</a>
        	        	&gt; SSL Client Test 
        		</div>

<div id="main">

	    <div class="floatLeft">
	<div class="reportTitle report-title-style">SSL/TLS Capabilities of Your Browser</div>
    <div class="reportTime width-650"><b>User Agent:</b> Mozilla&#47;5&#46;0&#32;&#40;Linux&#59;&#32;Android&#32;9&#59;&#32;Pixel&#32;3&#32;XL&#32;Build&#47;PD1A&#46;180720&#46;030&#41;&#32;AppleWebKit&#47;537&#46;36&#32;&#40;KHTML&#44;&#32;like&#32;Gecko&#41;&#32;Chrome&#47;68&#46;0&#46;3440&#46;85&#32;Mobile&#32;Safari&#47;537&#46;36</div>    </div>
    <div class="floatRight"><br><a href="/ssltest/clients.html">Other User Agents&nbsp;&raquo;</a></div>
    <br clear="all"/>
    
    
    <div align="center">

    
    
    
    <noscript>
        <div id=warningBox class="warning-box-line-height">
        <b>Without JavaScript, the following tests will not run:</b>
        (1) Accurate protocol support, (2) SSL 3 POODLE vulnerability, (3) mixed content handling,
            (4) TLS authentication bug in Apple's products, and (5) the FREAK attack.
        Please enable JavaScript for best results.
        </ul>
        </div>
        <br>
    </noscript>

    
    <div id="mixedCSSHiddenDiv1" class="display-none"></div>
    <div id="mixedCSSHiddenDiv2" class="display-none"></div>
    <iframe src="http://plaintext.ssllabs.com/plaintext/frame.html" class="display-none" width="0" height="0"></iframe>

        <div id="hiddenImagesDiv" class="display-none"></div>
    <div id="protocolSupportDiv" class="display-none"></div>


    
    <div class="reportSection" id="protocolTestDiv">
        <div class="sectionTitle" id="protocolTestHeading">Protocol Support</div>
        <div class="sectionBody">
            <div id="protocolTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking protocol support...</div>
            <div id="protocolTestMsgNotes"></div>
        </div>
    </div>

        <div class="reportSection" id="jamTestDiv">
            <div class="sectionTitle">Logjam Vulnerability</div>
            <div class="sectionBody">
                <div id="jamTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
                <div id="jamTestMsgNotes">
                    For more information about the Logjam attack, please go to
                    <a href="https://weakdh.org">weakdh.org</a>.<br>
                    To test manually, click <a href="https://www.ssllabs.com:10445/">here</a>.
                    Your user agent is not vulnerable if it fails to connect to the site.</div>
            </div>
        </div>

        <div class="reportSection" id="freakTestDiv">
            <div class="sectionTitle">FREAK Vulnerability</div>
            <div class="sectionBody">
                <div id="freakTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
                <div id="freakTestMsgNotes">
                    For more information about the FREAK attack, please go to
                    <a href="https://www.freakattack.com">www.freakattack.com</a>.<br>
                    To test manually, click <a href="https://www.ssllabs.com:10444/">here</a>.
                Your user agent is not vulnerable if it fails to connect to the site.</div>
            </div>
        </div>

    <div class="reportSection" id="ssl3TestDiv">
    <div class="sectionTitle">POODLE Vulnerability</div>
    <div class="sectionBody">
        <div id="ssl3TestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
        <div id="ssl3TestMsgNotes">For more information about the POODLE attack, please read <a href="https://community.qualys.com/blogs/securitylabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack">this blog post</a>.</div>
    </div>
    </div>

    <div class="reportSection" id="ssl2TestDiv">
    <div class="sectionTitle">SSL 2 Protocol Support</div>
    <div class="sectionBody">
        <div id="ssl2TestMsg"><font color="red">Your user agent supports SSL 2. You should upgrade.</font></div>
        <div id="ssl2TestMsgNotes">SSL 2 is a very old, obsolete, and insecure version of the SSL protocol. You can usually disable this protocol
	version in configuration, but modern clients don't support it at all. This really means that you should upgrade your software
	to a better version.</div>
    </div>
    </div>

    <script type="text/javascript" src="/includes/viewClient.js"></script>
    <input id="mainsitehost" type="hidden" value=www.ssllabs.com >
    <input id="plaintextSiteHost" type="hidden" value=plaintext.ssllabs.com >
    <div class="reportSection" id="appleTestDiv">
    <div class="sectionTitle">iOS and OS X TLS Authentication Vulnerability</div>
    <div class="sectionBody">

        <div id="appleTestMsg"><img src=/images/progress-indicator.gif width=16 height=16> Please wait, checking if your user agent is vulnerable...</div>
        <div id="appleTestMsgNotes">To test manually, <a href="https://www.ssllabs.com:10443">click here</a>. If your
            user agent refuses to connect, you are not vulnerable. This test requires a connection to the SSL Labs
            server on port 10443. A strict outbound firewall might interfere. You should test Safari running on
            iOS or OS X. Chrome and Firefox are not vulnerable, even when running on a vulnerable operating system.
        <a href="https://community.qualys.com/blogs/securitylabs/2014/02/24/ssl-labs-testing-for-apples-tls-authentication-bug"><b>MORE&nbsp;&raquo;</b></a></div>

        <script type="text/javascript" src="/includes/viewClient-appleTest.js"></script>

    </div>
    </div>
    
    <div class="reportSection">
	<div class="sectionTitle">Protocol Features</div>
	<div class="sectionBody">

	<input id="tls13Support" type="hidden" value=-1 >
	<img class="tIcon" src="/images/icon-protocol.png" width="65" height="50">
	<table class="reportTable">
	<thead>
	<tr>
		<td class="tableHead" colspan="2" align="left">Protocols</td>
	</tr>
	</thead>
	<tbody>
	
	
    <tr class="tableRow">
        <td class="tableLeft" id="protocol_tls1_3_label"> TLS 1.3 </td>
        <td class="tableRight" id="protocol_tls1_3">No</td>
    </tr>
    <tr class="tableRow">
        <td class="tableLeft" id="protocol_tls1_2_label">TLS 1.2</td>
        <td class="tableRight" id="protocol_tls1_2">Yes*</td>
    </tr>
	<tr class="tableRow">
		<td class="tableLeft">TLS 1.1</td>
		<td class="tableRight" id="protocol_tls1_1">Yes*</td>
	</tr>
	<tr class="tableRow">
		<td class="tableLeft" id="protocol_tls1_label">TLS 1.0</td>
		<td class="tableRight" id="protocol_tls1">Yes*</td>
	</tr>
	<tr class="tableRow">
		<td class="tableLeft" id="protocol_ssl3_label">SSL 3</td>
		<td class="tableRight" id="protocol_ssl3">Yes*</td>
	</tr>
	<tr class="tableRow">
				<td class="tableLeft" id="protocol_ssl2_label">SSL 2</td>
		<td class="tableRight" id="protocol_ssl2">No</td>			
			</tr>
		
		<noscript>
    <tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(*) Without JavaScript, this test reliably detects only the highest supported protocol.</span>
	</td>
	</tr>
    </noscript>
		
	</tbody>
	</table>
	
	<br><br>
            
    <img class="tIcon" src="/images/icon-cipher.png" width="65" height="50" alt="">
	<table class="reportTable">
		
	<thead>
	<tr>
		<td class="tableHead" colspan="3" align="left">Cipher Suites (in order of preference)</td>
	</tr>
	</thead>
	
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0x9c</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>128</font></td>
			</tr>
		<tr>
				    <td class="tableLeft"><font color=#F88017>TLS&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0x9d</code>) &nbsp; <b>WEAK</b></font></td>
		    <td class="tableRight"><font color=#F88017>256</font></td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xc02b</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;128&#95;GCM&#95;SHA256 (<code>0xc02f</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">128</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;ECDSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xc02c</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;ECDHE&#95;RSA&#95;WITH&#95;AES&#95;256&#95;GCM&#95;SHA384 (<code>0xc030</code>)
		     &nbsp; <span class="dhParams color-green">Forward Secrecy</span>
		    		    </td>
		    <td class="tableRight">256</td>
			</tr>
		<tr>
				    <td class="tableLeft">TLS&#95;EMPTY&#95;RENEGOTIATION&#95;INFO&#95;SCSV (<code>0xff</code>)</td>
		    <td class="tableRight">-</td>
			</tr>
	
	<tr class="tableRow">
	<td colspan=2 align=left>
	<span class="color666666">(1) When a browser supports SSL 2, its SSL 2-only suites are shown
	only on the very first connection to this site. To see the suites,
        close all browser windows, then open this exact page directly. Don't refresh.</span>
	</td>
	</tr>
	
		
	</table>
	
	<br><br>
	
	<img class="tIcon" src="/images/icon-protocol-details.png" width="65" height="50" alt="">
	<table class="reportTable">
	<thead>
		<tr>
			<td class="tableHead" colspan="2" align="left">Protocol Details</td>
		</tr>
	</thead>
	<tbody>
		<tr class="tableRow">
						<td class="tableLabel" width="250">Server Name Indication (SNI)</td>
			<td class="tableCell">Yes</td>
					</tr>
		
		<tr class="tableRow">
						<td class="tableLabel">Secure Renegotiation</td>
			<td class="tableCell">Yes</td>
					</tr>

				<tr class="tableRow">
			<td class="tableLabel"><font color=green>TLS compression</font></td>
			<td class="tableCell"><font color=green>No</font></td>
		</tr>
		
        		<tr class="tableRow">
			<td class="tableLabel">Session tickets</td>
			<td class="tableCell">Yes</td>
		</tr>
        
		<tr class="tableRow">
						<td class="tableLabel"><font color=#F88017>OCSP stapling</font></td>
			<td class="tableCell"><font color=#F88017>No</font></td>
					</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Signature algorithms</td>
			<td class="tableCell">
									SHA256/ECDSA,			SHA384/ECDSA,			SHA512/ECDSA,			Ed25519,			Ed448,			Unknown (0x8)/Unknown (0x9),			Unknown (0x8)/Unknown (0xa),			Unknown (0x8)/Unknown (0xb),			RSA_PSS_SHA256,			RSA_PSS_SHA384,			RSA_PSS_SHA512,			SHA256/RSA,			SHA384/RSA,			SHA512/RSA,			SHA224/ECDSA,			SHA1/ECDSA,			SHA224/RSA,			SHA1/RSA,			SHA224/DSA,			SHA1/DSA,			SHA256/DSA,			SHA384/DSA,			SHA512/DSA						</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Named Groups</td>
			<td class="tableCell">
									x25519,			secp256r1,			x448,			secp521r1,			secp384r1</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel">Next Protocol Negotiation</td>
			<td class="tableCell">No</td>			
		</tr>
		
		<tr class="tableRow">
			<td class="tableLabel" width="250">Application Layer Protocol Negotiation</td>
			<td class="tableCell">No</td>
		</tr>

			    <tr class="tableRow">
    	    <td class="tableLabel"><font color=green>SSL 2 handshake compatibility</font></td>
    	    <td class="tableCell"><font color=green>No</font></td>
    	</tr>
			</tbody>
	</table> 
	
	<br>   
	
	</div>
	</div>

    
    <div class="reportSection display-none" id="mixedDiv">
        <div class="sectionTitle">Mixed Content Handling</div>
        <div class="sectionBody">

            <img class="tIcon" src="/images/icon-misc.png" width="65" height="50">
            <table class="reportTable">
                <thead>
                <tr>
                    <td class="tableHead" colspan="3" align="left">Mixed Content Tests</td>
                </tr>
                </thead>
                <tbody>
                <tr class="tableRow">
                    <td class="tableLeft">Images</td>
                    <td class="tableRight width-100">Passive</td>
                    <td class="tableRight width-100" id="mixedImages">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">CSS</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedCssLink">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">Scripts</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedScripts">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">XMLHttpRequest</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedXhr">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">WebSockets</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedWebSockets">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td class="tableLeft">Frames</td>
                    <td class="tableRight">Active</td>
                    <td class="tableRight" id="mixedFrame">Testing...</td>
                </tr>

                <tr class="tableRow">
                    <td colspan="3" align="left">
                        <span class="color666666">(1) These tests might cause a mixed content warning in your browser. That's expected.<br></span>
                        <span class="color666666">(2) If you see a failed test, try to reload the page. If the error persists, please get in touch.</span>
                    </td>
                </tr>
                </tbody>
            </table>

            <br>

            <table class="reportTable report-table-margin">
                <thead>
                <tr>
                    <td class="tableHead" colspan="3" align="left">Related Functionality</td>
                </tr>
                </thead>

                <tbody>
                <tr class="tableRow">
                    <td class="tableLeft">Upgrade Insecure Requests request header (<a href="https://w3c.github.io/webappsec/specs/upgrade/">more info</a>)</td>
                                            <td class="tableRight">Yes</td>
                                    </tr>

                </tbody>
            </table>

        </div>

        </div>
        </div>
    </div>

    <script type="text/javascript" src="/includes/viewClient-clientTest.js"></script>

    
	</div>

          
</div>


</div>

<div id="pageEnd">
<div id="copyright">	
	<table width=1050 border=0 cellpadding=5 cellspacing=0><tr>
	<td class="footer">
    Copyright &copy; 2009-2019 <a href="https://www.qualys.com">Qualys, Inc</A>. All Rights Reserved.
    </td><td align=right class="footer">
    <a href="https://www.ssllabs.com/about/terms.html" rel="noreferrer">Terms and Conditions</a>
    </td></tr>
    <tr>
    <td class="footer">
    <a href="https://www.qualys.com/free-trial/">Try Qualys for free!</a> Experience the award-winning
    <a href="https://www.qualys.com/cloud-platform/">Qualys Cloud Platform</a> and the entire collection of
    <a href="https://www.qualys.com/apps/">Qualys Cloud Apps</a>, including
    <a href="https://www.qualys.com/certview/">certificate security</a> solutions.
    </td></tr>
    </table>
</div>
</div>
</body>
</html>

@karnadii
Copy link
Author

thanks guys :D

@ghost
Copy link

ghost commented Apr 30, 2019

Here is a screenshot of the html you just pasted, it matches mine exactly now:
localhost_8000_test html

I think it's pretty conclusive that the problem was indeed the signature algorithms and that upgrading your nodejs (and it's build of openssl) solved the problem.

So it'd be nice if we could find a way to override that so other people won't face similar problems.

@ghost
Copy link

ghost commented Apr 30, 2019

Further proof and a very bad work around:

var cloudscraper = require('cloudscraper');
cloudscraper.get({ agentOptions: { secureProtocol: 'TLSv1_1_method' }, uri: 'https://nanime.in' }).then(console.log)

Works when running the same process:

{ http_parser: '2.8.0',
  node: '10.8.0',
  v8: '6.7.288.49-node.19',
  uv: '1.22.0',
  zlib: '1.2.11',
  ares: '1.14.0',
  modules: '64',
  nghttp2: '1.32.0',
  napi: '3',
  openssl: '1.1.0h',
  icu: '62.1',
  unicode: '11.0',
  cldr: '33.1',
  tz: '2018e' }

The TLSv1.2 protocol made the signature algorithm and the hash algorithm that are used for digital signatures an independent attribute. Previously the negotiated cipher suite determined these algorithms.

https://tools.ietf.org/html/rfc5246#section-7.4.1.4.1

@ghost
Copy link

ghost commented Apr 30, 2019

@karnadii Can I get you to try this out on your system to confirm a fix?

Code snippet
if (process.version !== 'v10.8.0') {
  throw Error('Please run this test with the affected node version.');
}

const ciphers = [
  'AES128-GCM-SHA256',
  'AES128-SHA',
  'AES128-SHA256',
  'AES256-GCM-SHA384',
  'AES256-SHA',
  'AES256-SHA256',
  'DHE-PSK-AES128-CBC-SHA',
  'DHE-PSK-AES128-CBC-SHA256',
  'DHE-PSK-AES128-GCM-SHA256',
  'DHE-PSK-AES256-CBC-SHA',
  'DHE-PSK-AES256-CBC-SHA384',
  'DHE-PSK-AES256-GCM-SHA384',
  'DHE-PSK-CHACHA20-POLY1305',
  'DHE-RSA-AES128-GCM-SHA256',
  'DHE-RSA-AES128-SHA',
  'DHE-RSA-AES128-SHA256',
  'DHE-RSA-AES256-GCM-SHA384',
  'DHE-RSA-AES256-SHA',
  'DHE-RSA-AES256-SHA256',
  'DHE-RSA-CHACHA20-POLY1305',
  'ECDHE-ECDSA-AES128-GCM-SHA256',
  'ECDHE-ECDSA-AES128-SHA',
  'ECDHE-ECDSA-AES128-SHA256',
  'ECDHE-ECDSA-AES256-GCM-SHA384',
  'ECDHE-ECDSA-AES256-SHA',
  'ECDHE-ECDSA-AES256-SHA384',
  'ECDHE-ECDSA-CHACHA20-POLY1305',
  'ECDHE-PSK-AES128-CBC-SHA',
  'ECDHE-PSK-AES128-CBC-SHA256',
  'ECDHE-PSK-AES256-CBC-SHA',
  'ECDHE-PSK-AES256-CBC-SHA384',
  'ECDHE-PSK-CHACHA20-POLY1305',
  'ECDHE-RSA-AES128-GCM-SHA256',
  'ECDHE-RSA-AES128-SHA',
  'ECDHE-RSA-AES128-SHA256',
  'ECDHE-RSA-AES256-GCM-SHA384',
  'ECDHE-RSA-AES256-SHA',
  'ECDHE-RSA-AES256-SHA384',
  'ECDHE-RSA-CHACHA20-POLY1305',
  'PSK-AES128-CBC-SHA',
  'PSK-AES128-CBC-SHA256',
  'PSK-AES128-GCM-SHA256',
  'PSK-AES256-CBC-SHA',
  'PSK-AES256-CBC-SHA384',
  'PSK-AES256-GCM-SHA384',
  'PSK-CHACHA20-POLY1305',
  'RSA-PSK-AES128-CBC-SHA',
  'RSA-PSK-AES128-CBC-SHA256',
  'RSA-PSK-AES128-GCM-SHA256',
  'RSA-PSK-AES256-CBC-SHA',
  'RSA-PSK-AES256-CBC-SHA384',
  'RSA-PSK-AES256-GCM-SHA384',
  'RSA-PSK-CHACHA20-POLY1305',
  'SRP-AES-128-CBC-SHA',
  'SRP-AES-256-CBC-SHA',
  'SRP-RSA-AES-128-CBC-SHA',
  'SRP-RSA-AES-256-CBC-SHA',
  'TLS_AES_128_GCM_SHA256',
  'TLS_AES_256_GCM_SHA384',
  'TLS_CHACHA20_POLY1305_SHA256'
].join(':');

const cloudscraper = require('cloudscraper').defaults({ agentOptions: { ciphers } });
cloudscraper.get('https://nanime.in').then(console.log, console.error);

@karnadii
Copy link
Author

karnadii commented Apr 30, 2019

@pro-src it works

@ghost
Copy link

ghost commented Apr 30, 2019

Thank you, I'll send a PR soon so we can get this fix released.

@karnadii
Copy link
Author

@pro-src i have try using node v10.8.0, v10.15.3 and v12.1.0, only v12.1.0 give me succes, v10.15.3 also give me error CaptchaError: captcha except using ur work around using agenoptions

@ghost
Copy link

ghost commented Apr 30, 2019

Thanks for letting me know, I'll be testing as many node versions as possible before sending an official PR for peer review.

@ghost ghost changed the title CaptchaError: captcha v4.0.1 CaptchaError: captcha v4.0.1 (SSL negotiation) May 2, 2019
@ghost
Copy link

ghost commented May 14, 2019

Upon reexamination, the TLSv1.3 ciphers don't appear to be solving the problem after all. Rather the ciphers are changed in a non-intuitive way. The list of ciphers obtained from require('tls').getCiphers() is not equivalent to the list that is generated internally from require('tls').DEFAULT_CIPHERS.

The difference doesn't appear to disagree with what's been observed in a similar issue for python: Anorov/cloudflare-scrape#235

While the current code is solving the problem for users using old openssl versions, it's possible that some users might still encounter this problem even on the most recent version of openssl.

Thanks to @lukastribus for causing me to question the effect of the TLSv1.3 ciphers.

@ghost ghost reopened this May 14, 2019
@ghost
Copy link

ghost commented May 27, 2019

I do believe that this article explains why Cloudflare made these changes recently: https://community.cloudflare.com/t/tls-1-0-to-1-2-why/83643

@karnadii
Copy link
Author

karnadii commented Sep 5, 2019

hello, I don't know why but I still get error when using cloudscraper with nodejs version lower than 12. I am using the newest version 4.1.4.
using nodejs v10.16.0. I get this error. and switching to the latest stable v12.9.1 fix this error.

I believe I am not the only one facing this error, the error message is not helpful either, so at least inform user to update to newest version of node if they having the same error. maybe #251 also related to this error, and the user is clueless of what is the error.

stacktrace

/home/karnadi/Projects/nodejs/scraper/node_modules/request-promise-core/lib/plumbing.js:130
            throw thrownException;
            ^
CaptchaError: captcha
    at validateResponse (/home/karnadi/Projects/nodejs/scraper/node_modules/cloudscraper/index.js:232:11)
    at onCloudflareResponse (/home/karnadi/Projects/nodejs/scraper/node_modules/cloudscraper/index.js:195:5)
    at onRequestResponse (/home/karnadi/Projects/nodejs/scraper/node_modules/cloudscraper/index.js:178:5)
    at Request.<anonymous> (/home/karnadi/Projects/nodejs/scraper/node_modules/cloudscraper/index.js:137:7)
    at Object.onceWrapper (events.js:286:20)
    at Request.emit (events.js:198:13)
    at Request.<anonymous> (/home/karnadi/Projects/nodejs/scraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:198:13)
    at Gunzip.<anonymous> (/home/karnadi/Projects/nodejs/scraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:286:20)
    at Gunzip.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1129:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
    at /home/karnadi/Projects/nodejs/scraper/node_modules/x-ray/lib/stream.js:55:23
    at next (/home/karnadi/Projects/nodejs/scraper/node_modules/x-ray/index.js:95:25)
    at /home/karnadi/Projects/nodejs/scraper/node_modules/x-ray/index.js:66:27
    at /home/karnadi/Projects/nodejs/scraper/node_modules/x-ray/index.js:207:23
    at _done (/home/karnadi/Projects/nodejs/scraper/node_modules/enqueue/index.js:78:20)
    at _once (/home/karnadi/Projects/nodejs/scraper/node_modules/enqueue/index.js:93:15)
    at result (/home/karnadi/Projects/nodejs/scraper/node_modules/x-ray-crawler/lib/index.js:99:23)
    at /home/karnadi/Projects/nodejs/scraper/node_modules/wrap-fn/index.js:121:18
    at Request._rp_callbackOrig (/home/karnadi/Projects/nodejs/scraper/driver.js:16:11)
    at Request.plumbing.callback (/home/karnadi/Projects/nodejs/scraper/node_modules/request-promise-core/lib/plumbing.js:76:39)
    at Request.RP$callback [as _callback] (/home/karnadi/Projects/nodejs/scraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/karnadi/Projects/nodejs/scraper/node_modules/request/request.js:185:22)
    at onCloudflareResponse (/home/karnadi/Projects/nodejs/scraper/node_modules/cloudscraper/index.js:202:12)
    at onRequestResponse (/home/karnadi/Projects/nodejs/scraper/node_modules/cloudscraper/index.js:178:5)
    [... lines matching original stack trace ...]
    at Gunzip.emit (events.js:203:15)
zsh: exit 1     node novels.js

@ghost
Copy link

ghost commented Sep 5, 2019

Hey @karnadii,

I'm sorry to hear that. The README has been updated with information that may help avoid the CAPTCHA on other versions of Node.js: https://github.com/codemanki/cloudscraper#recaptcha

I believe I am not the only one facing this error, the error message is not helpful either, so at least inform user to update to newest version of node if they having the same error.

Unfortunately, it's not as simple as only updating Node.js to v12. Changing Node.js versions won't fix this issue for everybody as it is largely Device/Node.js version specific. Said another way, it is largely CPU features, OpenSSL version, Node.js default cipher suite specific.

These are the CAPTCHA issues that are TLS related: https://github.com/codemanki/cloudscraper/issues?utf8=✓&q=tls

Please try the tips mentioned in the README and report back whether they work for you. The more feedback we get, the better we'll know what to put in error messages.

Cheers.

@karnadii
Copy link
Author

karnadii commented Sep 5, 2019

I really don't know about this tls thing. and I forget https://github.com/codemanki/cloudscraper#recaptcha is solving this issue. thanks for the explanation. it has been long since I last used cloudscraper and forget about this agentoptions things. and since this issue already closed, I thought I can use it without this agentoption.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants