Позвоните в службу подписи сервера с сертификатом в кодировке Base64 в DSS
Мне нужно выполнить tok:sign
запрос DSS с заданным сертификатом вместо псевдонима.
<alias>certificate</alias>
Я попытался заменить ниже один строкой base64, но получил следующую ошибку в журнале.
ИНФО | http-nio-8080-exec-3 | oacxf.services.SoapSignatureTokenConnection.FAULT_OUT | FAULT_OUT
Пример оригинального SOAP-запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tok="http://token.dss.esig.europa.eu/">
<soapenv:Header/>
<soapenv:Body>
<tok:sign>
<toBeSigned>
<bytes>wFNeS+K3n/2TKRMFQ2v4iTFOSj+uwF7P/Lt98xrZ5Ro=</bytes>
</toBeSigned>
<digestAlgorithm>SHA256</digestAlgorithm>
<alias>certificate</alias>
</tok:sign>
</soapenv:Body>
</soapenv:Envelope>
Я уже добавил сертификат в cacerts
файл, но не удается получить с getKeys
SOAP запрос. Или, с другой стороны, как я могу добавить новый p12 на стороне сервера, чтобы сделать его доступным по псевдониму?
1 ответ
Файл p12 настраивается в файле dss.properties, base64 напрямую в запросе не поддерживается:
Server signing token
dss.server.signing.keystore.type = PKCS12
dss.server.signing.keystore.filename = user_a_rsa.p12
dss.server.signing.keystore.password = password
В случае с демо-веб-приложением корень репозитория dss-демонстраций должен быть перестроен (mvn clean install
) поставить новый сертификат подписи в веб-приложение.