Я занимаюсь разработкой приложения, использующего взаимную аутентификацию SSL, и хочу написать автоматический тест для оценки функциональности.
Я уже внедрил сервер и смог протестировать его с помощью Postman. Этот пост работает хорошо.
В моем тесте мокко я написал этот запрос:
chai.request(getServer())
.post('/users')
.ca(fs.readFileSync(path.join(process.cwd(), 'test', 'ca-crt.pem'), 'utf-8'))
.cert(path.join(process.cwd(), 'test', 'client1-key.pem'), 'utf-8'))
.key(path.join(process.cwd(), 'test', 'client1-crt'), 'utf-8'))
.send(userToCreate)
.end((error, response) => {
if (error !== null) {
reject(`User creation error : ${JSON.stringify(error)}`);
} else if (response.status !== 201) {
reject(`User creation failed : ${JSON.stringify(response.status)}`);
} else {
resolve(response.body);
}
});
Но этот запрос не отправляет сертификат на сервер:
- request.socket.authorized = undefined
Я пытался использовать агент HTTPS:
let agent = new Agent({
ca: fs.readFileSync(path.join(process.cwd(), 'test', 'ca-crt.pem'), 'utf-8'),
key: fs.readFileSync(path.join(process.cwd(), 'test', 'client1-key.pem'), 'utf-8'),
cert: fs.readFileSync(path.join(process.cwd(), 'test', 'client1-crt.pem'), 'utf-8')
});
chai.request(getServer())
.post('/users')
.agent(agent)
.send(userToCreate)
.end((error, response) => {
if (error !== null) {
reject(`User creation error : ${JSON.stringify(error)}`);
} else if (response.status !== 201) {
reject(`User creation failed : ${JSON.stringify(response.status)}`);
} else {
resolve(response.body);
}
});
Но этот запрос не отправляет сертификат на сервер:
- request.socket.authorized = undefined
- Я получаю исключение ERR_INVALID_PROTOCOL для теста мокко
Может кто-нибудь помочь мне, пожалуйста?