侧边栏壁纸
博主头像
DOKI SEKAI博主等级

行动起来,活在当下

  • 累计撰写 114 篇文章
  • 累计创建 38 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

在 Verdaccio 中配置 HTTPS

君
2024-12-30 / 0 评论 / 0 点赞 / 10 阅读 / 4658 字

在 Verdaccio 中配置 HTTPS

1. 配置 SSL 证书

首先,确保您有有效的 SSL 证书,您可以使用如下几种方式获得证书:

  • Let’s Encrypt:免费 SSL 证书
  • 自签名证书:用于测试和内部使用
  • 购买证书:通过证书颁发机构(CA)购买

SSL 证书通常包括两个文件:

  • 私钥文件(private.key
  • 公钥证书文件(public.pem

2. 配置 Verdaccio 启用 HTTPS

在 Verdaccio 配置文件中启用 HTTPS,您需要编辑 config.yaml 配置文件,修改以下内容来启用 HTTPS 支持。

2.1 修改 config.yaml

# Verdaccio 配置文件
listen:
  - http://0.0.0.0:4873      # HTTP 监听,默认 4873 端口
  - https://0.0.0.0:443     # HTTPS 监听,默认 443 端口

https:
  enable: true                    # 启用 HTTPS
  key: /path/to/private.key       # SSL 私钥文件路径
  cert: /path/to/public.pem       # SSL 公钥证书文件路径
  ca: /path/to/ca.pem             # 可选,CA 证书路径(如果有)

# 其它配置...
  • listen:此配置告诉 Verdaccio 在两个端口上监听:4873 端口用于 HTTP(默认端口),443 端口用于 HTTPS(通常是默认 HTTPS 端口)。
  • https:启用 HTTPS,您需要提供私钥(private.key)和公钥证书(public.pem)的路径。
    • enable: true 启用 HTTPS
    • key 是您的 SSL 私钥文件的路径
    • cert 是您的 SSL 公钥证书的路径
    • ca(可选)是根 CA 证书路径,通常在使用 Let's Encrypt 时需要,或者如果您使用了私有 CA 证书。

示例配置:

listen:
  - http://0.0.0.0:4873
  - https://0.0.0.0:443

https:
  enable: true
  key: /data/verdaccio/******.com/private.key   # 私钥路径
  cert: /data/verdaccio/******.com/public.pem   # 公钥路径
  ca: /data/verdaccio/******.com/ca.pem         # 可选,CA 证书路径

3. 生成和安装 SSL 证书(如果使用自签名证书)

如果您没有有效的 SSL 证书,可以使用 openssl 生成一个自签名证书用于测试。以下是生成自签名证书的命令:

3.1 生成私钥和证书

# 生成私钥
openssl genpkey -algorithm RSA -out private.key

# 生成证书签署请求 (CSR)
openssl req -new -key private.key -out csr.pem

# 生成自签名证书
openssl x509 -req -in csr.pem -signkey private.key -out public.pem -days 365

3.2 将证书文件放置在服务器上的适当路径

将生成的 private.keypublic.pem 文件上传到您的服务器,并将它们放置在适当的目录中(例如 /data/verdaccio/******.com/),然后在 config.yaml 文件中指定它们的路径。

4. 启动 Verdaccio

配置完成后,您可以重新启动 Verdaccio 服务来使配置生效。

# 如果您使用的是系统服务管理(如 systemd),重启 Verdaccio 服务
sudo systemctl restart verdaccio

# 或者,如果您直接通过命令行启动 Verdaccio:
verdaccio

5. 验证 HTTPS 配置

在浏览器中访问您的 Verdaccio 服务,使用 HTTPS 协议:

  • 访问 https://npm.******.com:443(请替换为您的域名)。

如果配置正确,您应该能够通过 HTTPS 安全地访问 Verdaccio。

6. (可选) 配置端口 80 和 443 监听

如果希望通过端口 80(HTTP)自动重定向到端口 443(HTTPS),可以在 Verdaccio 配置文件中添加 listen 配置来实现。但需要注意,您必须确保 HTTPS 配置有效,且您的防火墙和端口设置允许访问端口 443。

listen:
  - http://0.0.0.0:80   # HTTP,自动重定向到 HTTPS
  - https://0.0.0.0:443 # HTTPS

7. 常见问题排查

  • SSL 证书错误:如果您看到浏览器警告 SSL 证书错误,确保您使用的是有效的证书,或者浏览器允许使用自签名证书(开发时)。
  • 端口冲突:确保 80 和 443 端口没有被其他服务占用,尤其是在使用云服务器时,可能需要调整防火墙设置以允许访问这些端口。

总结

通过上述步骤,您可以直接在 Verdaccio 中启用 HTTPS 支持,并确保您的仓库通过 HTTPS 安全访问。无需使用 Nginx 作为反向代理,直接在 Verdaccio 配置中配置 SSL 证书和端口监听即可实现安全的连接。

0

评论区