No required SSL certificate sent
Summary
After updating from version 3.11.1 to 3.22.0, the plugin can't connect to my self-hosted gitlab instance anymore. When I open the GitLab Workflow tab, VS Code displays a GraphQL Error that the server returned status code 400 because "No required SSL certificate was sent". The very same configuration of the plugin still worked with version 3.11.1 and stopped working with 3.11.2 already (I just didn't update for a while).
Steps to reproduce
- install v3.11.1 of the plugin
- use config mentioned below
- update to v3.11.2 and reload VS Code
- open GitLab Workflow tab
Used configuration:
{
"git.confirmSync": false,
"files.eol": "\n",
"editor.multiCursorModifier": "alt",
"git.suggestSmartCommit": false,
"diffEditor.ignoreTrimWhitespace": false,
"terminal.integrated.scrollback": 100000,
"terminal.integrated.tabs.enabled": true,
"eslint.format.enable": true,
"gitlab.instanceUrl": "https://<self_hosted_url>/gitlab/",
"gitlab.cert": "<path_to_cert>\\vs_code.crt",
"gitlab.certKey": "<path_to_cert>\\vs_code.key",
"gitlab.ignoreCertificateErrors": true,
}
The .crt and .key files were generated using
openssl pkcs12 -in '.\<filename>.pfx' -nocerts -nodes -out vs_code.key
openssl pkcs12 -in '.\<filename>.pfx' -clcerts -nokeys -out vs_code.crt
What is the current bug behavior?
A popup gets displayed showing the error. The GitLab Workflow views show "Fetching Issues and MRs failed" and "Error occurred, please try to refresh."
Output on the log is
GraphQL Error (Code: 400): {"response":{"error":"<html>\r\n<head><title>400 No required SSL certificate was sent</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>400 Bad Request</h1></center>\r\n<center>No required SSL certificate was sent</center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n","status":400},"request":{"query":"\n \n fragment projectDetails on Project {\n id\n name\n description\n httpUrlToRepo\n sshUrlToRepo\n fullPath\n webUrl\n group {\n id\n }\n }\n\n query GetProject($projectPath: ID!) {\n project(fullPath: $projectPath) {\n ...projectDetails\n }\n }\n","variables":{"projectPath":"<project_path>"}}}
Error: GraphQL Error (Code: 400): {"response":{"error":"<html>\r\n<head><title>400 No required SSL certificate was sent</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>400 Bad Request</h1></center>\r\n<center>No required SSL certificate was sent</center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n","status":400},"request":{"query":"\n \n fragment projectDetails on Project {\n id\n name\n description\n httpUrlToRepo\n sshUrlToRepo\n fullPath\n webUrl\n group {\n id\n }\n }\n\n query GetProject($projectPath: ID!) {\n project(fullPath: $projectPath) {\n ...projectDetails\n }\n }\n","variables":{"projectPath":"<project_path>"}}}
at GraphQLClient.<anonymous> (<user_dir>\.vscode\extensions\gitlab.gitlab-workflow-3.22.0\node_modules\graphql-request\dist\index.js:170:35)
at step (<user_dir>\.vscode\extensions\gitlab.gitlab-workflow-3.22.0\node_modules\graphql-request\dist\index.js:63:23)
at Object.next (<user_dir>\.vscode\extensions\gitlab.gitlab-workflow-3.22.0\node_modules\graphql-request\dist\index.js:44:53)
at fulfilled (<user_dir>\.vscode\extensions\gitlab.gitlab-workflow-3.22.0\node_modules\graphql-request\dist\index.js:35:58)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
What is the expected correct behavior?
No error popup shows up. The GitLab Workflow views get populated with data from the repository
Relevant logs and/or screenshots
See log output above.
Possible fixes
- roll back to v3.11.1 and reload VS Code and all views get populated again