Npm install from gitlab get error 400 The plain HTTP request was sent to HTTPS port

Problem to solve

I have published a npm package to gitlab registry, when I install the package by npm,it throws an error:
GET http://gitlab.nhsoft.cn:443/api/v4/projects/693/packages/npm/@earth-client/earth-base-utils/-/@earth-client/earth-base-utils-1.0.0.tgz 400Bad Request
with response body

<html>

<head>
    <title>400 The plain HTTP request was sent to HTTPS port</title>
</head>

<body bgcolor="white">
    <center>
        <h1>400 Bad Request</h1>
    </center>
    <center>The plain HTTP request was sent to HTTPS port</center>
    <hr>
    <center>nginx</center>
</body>

</html>

I find that api returns a wrong tarball url:

{
    "name": "@earth-client/earth-base-utils",
    "versions": {
        "1.0.0": {
            "name": "@earth-client/earth-base-utils",
            "version": "1.0.0",
            "dist": {
                "shasum": "0bb799752b3e83789340253fe25fdbacc982746b",
                "tarball": "http://gitlab.nhsoft.cn:443/api/v4/projects/693/packages/npm/@earth-client/earth-base-utils/-/@earth-client/earth-base-utils-1.0.0.tgz"
            }
        }
    },
    "dist-tags": {
        "latest": "1.0.0"
    }
}

I think the right tarbal url should be like http://gitlab.nhsoft.cn/api or https://gitlab.nhsoft.cn/api , but now it uses protocol http and port 443

please help, thank you

Steps to reproduce

publish a package to gitlab then install it

Configuration

external_url=https://gitlab.nhsoft.cn

Versions

Versions
13.10.3