EJBCA SOAP 接口返回索引越界异常

问题描述

我遇到了一个大问题。我必须在 python 客户端中调用 EJBCA Web 服务才能发布证书。 我写了我的代码如下:

function ownLogger(state,action) {
  console.log(state,action);
}
@NgModule({
  declarations: [AppComponent,MyCounterComponent],imports: [
    browserModule,StoreModule.forRoot({ count: counterReducer }),StoreDevtoolsModule.instrument({
      name: 'NgRx Demo App',logonly: environment.production,monitor: (state,action) => {
        console.log(environment);
        if (environment.production) {
          ownLogger(state,action);
        }
      }
    })
  ],providers: [],bootstrap: [AppComponent]
})
export class AppModule {}

这是 entred csr :

            session = Session()
            session.verify = False
            session.cert = cert_pair_verify

            client = Client(
                'url/ejbca/ejbcaws/ejbcaws?wsdl',wsse=BinarySignatureTimestamp(
                    client_key_path,client_cert_path,),transport=Transport(session=session))

userDataVOWS = client.get_type(
            '{http://ws.protocol.core.ejbca.org/}userDataVOWS')

        user = userDataVOWS()

        user.caName = 'CA'
        user.username = 'test'
        user.password = 'Tests'
        user.clearPwd = False
        user.subjectDN = 'test'

        user.tokenType = "USERGENERATED"
        user.keyRecoverable = False
        user.sendNotification = False
        user.status = 10
        user.endEntityProfileName = "EMPTY"
        user.certificateProfileName = "ENDUSER"
        
        response = client.service.certificateRequest(None,csr,None,"CERTIFICATE")
        # print('this is a test of response %s' %response)
        return zeep.helpers.serialize_object(response)

我不知道我犯了什么错误,但是我在 client.service 方法上得到了一个索引越界异常。 谁知道如何解决这个问题? 谢谢。

解决方法

您在上面粘贴的 CSR 在结束 PEM 行的末尾有一个额外的“-”。