diff --git a/src/apps.json b/src/apps.json index 67d04a87e..d8380c9aa 100644 --- a/src/apps.json +++ b/src/apps.json @@ -586,7 +586,7 @@ ], "icon": "aircall.png", "script": "^https?://cdn\\.aircall\\.io/", - "description": "Aircall is a cloud-based phone system for customer support and sales teams." + "description": "Aircall is a cloud-based phone system for customer support and sales teams.", "website": "http://aircall.io" }, "Airee": { @@ -742,6 +742,47 @@ "implies": "Amazon Web Services", "website": "https://aws.amazon.com/elasticloadbalancing/" }, + "AWS Certificate Manager": { + "cats": [ + 70 + ], + "certIssuer": "Amazon", + "icon": "aws.svg", + "implies": "Amazon Web Services", + "website": "https://aws.amazon.com/certificate-manager/" + }, + "Let's Encrypt": { + "cats": [ + 70 + ], + "certIssuer": "Let's Encrypt", + "icon": "Lets Encrypt.svg", + "website": "https://letsencrypt.org/" + }, + "Sectigo": { + "cats": [ + 70 + ], + "certIssuer": "Sectigo", + "icon": "Sectigo.svg", + "website": "https://sectigo.com/" + }, + "DigiCert": { + "cats": [ + 70 + ], + "certIssuer": "DigiCert", + "icon": "DigiCert.svg", + "website": "https://www.digicert.com/" + }, + "Identrust": { + "cats": [ + 70 + ], + "certIssuer": "TrustID", + "icon": "Identrust.svg", + "website": "https://www.identrust.com/" + }, "Amazon Cloudfront": { "cats": [ 31 @@ -824,7 +865,7 @@ 62 ], "icon": "aws.svg", - "description": "Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality." + "description": "Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.", "website": "https://aws.amazon.com/" }, "Amber": { @@ -923,7 +964,7 @@ "ng.coreTokens": "", "ng.probe": "" }, - "description": "Angular is a TypeScript-based open-source web application framework led by the Angular Team at Google." + "description": "Angular is a TypeScript-based open-source web application framework led by the Angular Team at Google.", "website": "https://angular.io" }, "Angular Material": { @@ -15656,6 +15697,10 @@ "69": { "name": "Social login", "priority": 6 + }, + "70": { + "name": "SSL/TLS certificate authority", + "priority": 6 } } } diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js index de9df8935..4170ad9aa 100644 --- a/src/drivers/npm/driver.js +++ b/src/drivers/npm/driver.js @@ -317,7 +317,13 @@ class Site { } else { responseReceived = true - this.onDetect(analyze({ headers })) + const certIssuer = response.securityDetails() + ? response.securityDetails().issuer() + : '' + + console.log(certIssuer) + + this.onDetect(analyze({ headers, certIssuer })) await this.emit('response', { page, response }) } diff --git a/src/drivers/webextension/_locales/ca/messages.json b/src/drivers/webextension/_locales/ca/messages.json index e08acdc04..c5053ff24 100644 --- a/src/drivers/webextension/_locales/ca/messages.json +++ b/src/drivers/webextension/_locales/ca/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Balanceigs de càrrega" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility"}, + "categoryName69": { "message": "Social login"}, + "categoryName70": { "message": "SSL/TLS certificate authority"} } diff --git a/src/drivers/webextension/_locales/de/messages.json b/src/drivers/webextension/_locales/de/messages.json index 380eeeb36..631d7010d 100644 --- a/src/drivers/webextension/_locales/de/messages.json +++ b/src/drivers/webextension/_locales/de/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility"}, + "categoryName69": { "message": "Social login"}, + "categoryName70": { "message": "SSL/TLS certificate authority"} } diff --git a/src/drivers/webextension/_locales/el/messages.json b/src/drivers/webextension/_locales/el/messages.json index 97b47231b..d96216826 100644 --- a/src/drivers/webextension/_locales/el/messages.json +++ b/src/drivers/webextension/_locales/el/messages.json @@ -82,6 +82,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/en/messages.json b/src/drivers/webextension/_locales/en/messages.json index c96ec36ec..453b284bb 100644 --- a/src/drivers/webextension/_locales/en/messages.json +++ b/src/drivers/webextension/_locales/en/messages.json @@ -70,7 +70,7 @@ "categoryName51": { "message": "Page builder" }, "categoryName52": { "message": "Live chat" }, "categoryName53": { "message": "CRM" }, - "categoryName54": { "message": "SEO" }, + "categoryName54": { "message": "SEO" }, "categoryName55": { "message": "Accounting" }, "categoryName56": { "message": "Cryptominers" }, "categoryName57": { "message": "Static site generators" }, @@ -84,6 +84,7 @@ "categoryName65": { "message": "Load balancers" }, "categoryName66": { "message": "UI frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/es/messages.json b/src/drivers/webextension/_locales/es/messages.json index 8027b9a5e..b073fb5aa 100644 --- a/src/drivers/webextension/_locales/es/messages.json +++ b/src/drivers/webextension/_locales/es/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/fa/messages.json b/src/drivers/webextension/_locales/fa/messages.json index 3965349ed..8a221fefb 100644 --- a/src/drivers/webextension/_locales/fa/messages.json +++ b/src/drivers/webextension/_locales/fa/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/fr/messages.json b/src/drivers/webextension/_locales/fr/messages.json index 3126df07d..9f58d9b7f 100644 --- a/src/drivers/webextension/_locales/fr/messages.json +++ b/src/drivers/webextension/_locales/fr/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/gl_ES/messages.json b/src/drivers/webextension/_locales/gl_ES/messages.json index db0aa24bf..fb8fa26fd 100644 --- a/src/drivers/webextension/_locales/gl_ES/messages.json +++ b/src/drivers/webextension/_locales/gl_ES/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Balanceador de carga" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/gr/messages.json b/src/drivers/webextension/_locales/gr/messages.json index 615275d5f..fcd10ad82 100644 --- a/src/drivers/webextension/_locales/gr/messages.json +++ b/src/drivers/webextension/_locales/gr/messages.json @@ -82,6 +82,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/id/messages.json b/src/drivers/webextension/_locales/id/messages.json index 0fab2d472..a0d1b2897 100644 --- a/src/drivers/webextension/_locales/id/messages.json +++ b/src/drivers/webextension/_locales/id/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/it/messages.json b/src/drivers/webextension/_locales/it/messages.json index e4d107851..a80798521 100644 --- a/src/drivers/webextension/_locales/it/messages.json +++ b/src/drivers/webextension/_locales/it/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/ja/messages.json b/src/drivers/webextension/_locales/ja/messages.json index 3b3d095a8..656901314 100644 --- a/src/drivers/webextension/_locales/ja/messages.json +++ b/src/drivers/webextension/_locales/ja/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "ロードバランサー" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/ko/messages.json b/src/drivers/webextension/_locales/ko/messages.json index 9e6f2f47e..86a217896 100644 --- a/src/drivers/webextension/_locales/ko/messages.json +++ b/src/drivers/webextension/_locales/ko/messages.json @@ -84,6 +84,7 @@ "categoryName65": { "message": "로드 밸런서" }, "categoryName66": { "message": "UI 프레임워크" }, "categoryName67": { "message": "쿠키 동의" }, - "categoryName68": { "message": "접근성"}, - "categoryName69": { "message": "소셜 로그인"} + "categoryName68": { "message": "접근성" }, + "categoryName69": { "message": "소셜 로그인" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json index f72e45917..d000e321f 100644 --- a/src/drivers/webextension/_locales/pl/messages.json +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Równoważenie obciążenia" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/pt/messages.json b/src/drivers/webextension/_locales/pt/messages.json index 664ec823a..c4c41277d 100644 --- a/src/drivers/webextension/_locales/pt/messages.json +++ b/src/drivers/webextension/_locales/pt/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/pt_BR/messages.json b/src/drivers/webextension/_locales/pt_BR/messages.json index e26c19526..36f90a93f 100644 --- a/src/drivers/webextension/_locales/pt_BR/messages.json +++ b/src/drivers/webextension/_locales/pt_BR/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Balanceador de Carga" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/ro/messages.json b/src/drivers/webextension/_locales/ro/messages.json index 235b78c37..fb621d40c 100644 --- a/src/drivers/webextension/_locales/ro/messages.json +++ b/src/drivers/webextension/_locales/ro/messages.json @@ -82,6 +82,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json index 4ed742348..e1fd536ee 100644 --- a/src/drivers/webextension/_locales/ru/messages.json +++ b/src/drivers/webextension/_locales/ru/messages.json @@ -85,5 +85,6 @@ "categoryName66": { "message": "UI Фреймворк" }, "categoryName67": { "message": "Соответствие cookie" }, "categoryName68": { "message": "Доступность" }, - "categoryName69": { "message": "Social login" } + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/sk/messages.json b/src/drivers/webextension/_locales/sk/messages.json index ae0347742..f5095fa72 100644 --- a/src/drivers/webextension/_locales/sk/messages.json +++ b/src/drivers/webextension/_locales/sk/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/tr/messages.json b/src/drivers/webextension/_locales/tr/messages.json index b355b011d..832a58bc3 100644 --- a/src/drivers/webextension/_locales/tr/messages.json +++ b/src/drivers/webextension/_locales/tr/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Yük Dengeleyici" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/uk/messages.json b/src/drivers/webextension/_locales/uk/messages.json index 0100a626f..a6f7d5daa 100644 --- a/src/drivers/webextension/_locales/uk/messages.json +++ b/src/drivers/webextension/_locales/uk/messages.json @@ -87,5 +87,6 @@ "categoryName66": { "message": "UI Каркаси" }, "categoryName67": { "message": "Відповідність файлам cookie" }, "categoryName68": { "message": "Доступність" }, - "categoryName69": { "message": "Social login" } + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/uz/messages.json b/src/drivers/webextension/_locales/uz/messages.json index 3b3925df1..af62b2567 100644 --- a/src/drivers/webextension/_locales/uz/messages.json +++ b/src/drivers/webextension/_locales/uz/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility"}, + "categoryName69": { "message": "Social login"}, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/zh_CN/messages.json b/src/drivers/webextension/_locales/zh_CN/messages.json index 05fdf9fe6..8a37b95ca 100644 --- a/src/drivers/webextension/_locales/zh_CN/messages.json +++ b/src/drivers/webextension/_locales/zh_CN/messages.json @@ -85,5 +85,6 @@ "categoryName66": { "message": "用户界面(UI)框架" }, "categoryName67": { "message": "Cookie 合规" }, "categoryName68": { "message": "辅助功能"}, - "categoryName69": { "message": "社交登录"} + "categoryName69": { "message": "社交登录"}, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/_locales/zh_TW/messages.json b/src/drivers/webextension/_locales/zh_TW/messages.json index cee7a4463..575a241f0 100644 --- a/src/drivers/webextension/_locales/zh_TW/messages.json +++ b/src/drivers/webextension/_locales/zh_TW/messages.json @@ -86,6 +86,7 @@ "categoryName65": { "message": "負載平衡器" }, "categoryName66": { "message": "UI 框架" }, "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"} + "categoryName68": { "message": "Accessibility" }, + "categoryName69": { "message": "Social login" }, + "categoryName70": { "message": "SSL/TLS certificate authority" } } diff --git a/src/drivers/webextension/images/icons/DigiCert.svg b/src/drivers/webextension/images/icons/DigiCert.svg new file mode 100644 index 000000000..18baf2830 --- /dev/null +++ b/src/drivers/webextension/images/icons/DigiCert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/Identrust.svg b/src/drivers/webextension/images/icons/Identrust.svg new file mode 100644 index 000000000..98c51a60b --- /dev/null +++ b/src/drivers/webextension/images/icons/Identrust.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/Lets Encrypt.svg b/src/drivers/webextension/images/icons/Lets Encrypt.svg new file mode 100644 index 000000000..4a0c2efe8 --- /dev/null +++ b/src/drivers/webextension/images/icons/Lets Encrypt.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Sectigo.svg b/src/drivers/webextension/images/icons/Sectigo.svg new file mode 100644 index 000000000..2e5e237fa --- /dev/null +++ b/src/drivers/webextension/images/icons/Sectigo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 35a4f5aea..ed04c0058 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -180,7 +180,7 @@ const Wappalyzer = { * Initialize analyzation. * @param {*} param0 */ - analyze({ url, html, robots, meta, headers, cookies, scripts }) { + analyze({ url, html, robots, meta, headers, certIssuer, cookies, scripts }) { const oo = Wappalyzer.analyzeOneToOne const om = Wappalyzer.analyzeOneToMany const mm = Wappalyzer.analyzeManyToMany @@ -194,6 +194,7 @@ const Wappalyzer = { oo(technology, 'url', url), oo(technology, 'html', html), oo(technology, 'robots', robots), + oo(technology, 'certIssuer', certIssuer), om(technology, 'scripts', scripts), mm(technology, 'cookies', cookies), mm(technology, 'meta', meta), @@ -223,6 +224,7 @@ const Wappalyzer = { robots, meta, headers, + certIssuer, cookies, script, js, @@ -241,6 +243,7 @@ const Wappalyzer = { headers: transform(headers), cookies: transform(cookies), html: transform(html), + certIssuer: transform(certIssuer), robots: transform(robots), meta: transform(meta), scripts: transform(script),