设置 SSL 证书
按照这些说明配置 SSL 证书,以通过 HTTPS 提供 npm 注册中心服务。
- 更新
~/.config/verdaccio/config.yaml
中的 listen 属性:
listen: 'https://your.domain.com/'
一旦你更新了监听属性,并尝试再次运行 Verdaccio,它将要求提供证书。
- 生成证书
$ openssl genrsa -out /Users/user/.config/verdaccio/verdaccio-key.pem 2048
$ openssl req -new -sha256 -key /Users/user/.config/verdaccio/verdaccio-key.pem -out /Users/user/.config/verdaccio/verdaccio-csr.pem
$ openssl x509 -req -in /Users/user/.config/verdaccio/verdaccio-csr.pem -signkey /Users/user/.config/verdaccio/verdaccio-key.pem -out /Users/user/.config/verdaccio/verdaccio-cert.pem
- 编辑你的配置文件 `/Users/user/.config/verdaccio/config.yaml` 并添加以下部分:
https: key: /Users/user/.config/verdaccio/verdaccio-key.pem cert: /Users/user/.config/verdaccio/verdaccio-cert.pem ca: /Users/user/.config/verdaccio/verdaccio-csr.pem
或者,如果您有 `server.pfx` 格式的证书,您可以添加以下配置部分:(密码是可选的,只有在您的证书被加密时才需要)
https: pfx: /Users/user/.config/verdaccio/server.pfx passphrase: 'secret'
您可以在 [节点文档](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options) 中找到关于 `key`, `cert`, `ca`, `pfx` 和 `passphrase` 参数的更多信息
- 在命令行运行 `verdaccio`。
- 打开浏览器,访问 `https://your.domain.com:port/`
此指南主要在 OSX 和 Linux 里有效,在 Windows 上,路径不同,但步骤是一样的。
## Docker
如果您使用的是 Docker 镜像,则必须将 `VERDACCIO_PROTOCOL` 环境变量设置为 `https`,因为 `listen` 参数在 [Dockerfile](https://github.com/verdaccio/verdaccio/blob/master/Dockerfile#L43) 中已经指定,你的配置文件中会被忽略
如果您使用不同于 `4873`的端口,您也可以设置 `VERDACCIO_PORT` 环境变量。