如何将frisby.js与SSL客户端证书一起使用?

时间:2015-01-26 19:30:53

标签: ssl frisby.js

我对使用Frisby.js和使用SSL客户端证书的REST服务有疑问。

如果我使用Request包与服务进行通信,我可以这样做:

request.get(URL, {
  agentOptions: {
    // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format:
    pfx: fs.readFileSync(pfxFilePath),
    passphrase: 'password',
    ca: fs.readFileSync(caFilePath)
  }
});

由于Frisby使用请求,我假设我可以在Frisby测试中做类似的事情,但我似乎无法正确理解语法。

你能提出一些可行的建议吗?感谢...

1 个答案:

答案 0 :(得分:1)

.get().post()方法可以采用其他结构,其内容类似于https.request()的options参数。您需要为(某些)提供值:pfxkeycertcapassphrase

这样的事情:

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

frisbee.create( 'Test name' )
  .get(
    'https://localhost/rest/endpoint',
    {
      key:        fs.readFileSync( "/path/to/certificates/certificate.key" ),
      cert:       fs.readFileSync( "/path/to/certificates/certificate.crt" ),
      ca:         fs.readFileSync( "/path/to/certificates/ca.crt" ),
      passphrase: "your pass phrase"
    }
  )
  .expectStatus( 200 )
  .toss();