diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 52a80436be7fa0bff188555163d44c49bf14222c..749f8a9f6f9409538eb7d0265a445173fad68765 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,17 +4,15 @@ stages:
 publish_npm:
   image: "node:current-alpine"
   stage: publish-npm
-  variables:
-    GIT_SUBMODULE_STRATEGY: recursive
+
   before_script:
     - apk add --update bash
     - apk add --update make
     - apk add --update protobuf-dev
     - apk add --update yarn
     - apk add --update git
-    - git config --global http.sslVerify "false"
-    - git submodule init
-    - git submodule update --recursive --remote
+    - git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/".insteadOf "git@gitlab.com:"
+    - git submodule sync && git submodule update --init
 
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'