Я использую плагины grunt-accessibility для автоматизации отчетов для ошибок accessibility
. Он нормально работает нормально, но когда я пытаюсь его на сайте с self signed certificate
(вид, который показывает страницу interim
с некоторым предупреждением о безопасности сертификата и ссылку, чтобы продолжить сайт, если вы все еще хотите), он сообщает об ошибке на этой странице interim
, которая, конечно же, является пустой страницей:
<html>
<head></head>
<body></body>
</html>
Очевидно, что я хочу обойти эту промежуточную страницу и запустить accessibility
на фактической странице.
Что я пытался?
Я попробовал следующее (найденное из googling и других SO's
Q & A):
-
Печально известный хак
npm set strict-ssl false
-
Добавление импортированного пути сертификации
npm config set cafile="C:\path\to\cert.cer"
-
Добавление
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
(см. нижеGrunfile
)
Из того, что я собираю, grunt-accessibility
использует AccessSniff
, который, в свою очередь, использует phantomjs
. Теперь phantomjs
имеет опции для игнорирования таких предупреждений
--ignore-ssl-errors=[true|false]
игнорирует ошибки SSL, такие как истекшие или самозаверяющие ошибки сертификата (по умолчанию - false).
Выше указаны параметры CLI, которые я не могу передать из Grunfile.js
.
Может кто-то помочь мне решить или предложить другой подход к проблеме.
Это мой Gruntfile.js:
module.exports = grunt => {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
grunt.initConfig({
phantomjs: {
// default: {
options: {
"ignore-ssl-errors": true,
// tested here with different instructions as per comments
// below from users on this site, such as
// "--ignore-ssl-errors": true (-- hyphen)
// "ignore-ssl-errors": "true" ("true" as string)
"ssl-protocol": "any",
"ssl-certificates-path": "C:/path/to/cert.cer"
}
// }
},
accessibility: {
options: {
force: true,
accessibilityLevel: 'WCAG2AAA',
browser: true // tested with both true/false, i.e. opt for phantomjs/jsDom
},
test: {
options: {
urls: ['https://self-signed.badssl.com/']
},
src: ['example/test.html']
}
}
});
grunt.loadNpmTasks('grunt-accessibility');
grunt.registerTask('default', ['accessibility']);
};
P.S.:
-
test url - это самоподписанный ssl-сайт, поэтому вы можете скопировать/вставить вышеуказанный код и протестировать его
-
только зависимости в
package.json
"devDependencies": { "grunt": "^1.0.1", "grunt-accessibility": "^5.0.0" }
-
node версия
v.8.9.0