3. Nexus基础配置:管理员密码重置、匿名访问控制、SMTP邮件配置、HTTPS证书配置、系统健康检查
Nexus Repository Manager 在首次安装或长期运行后,管理员需要完成一系列基础配置以确保系统的安全性、可访问性与稳定性。本章将围绕五个核心配置项展开:管理员密码重置、匿名访问控制、SMTP 邮件服务、HTTPS 证书绑定以及系统健康检查。这些配置是 Nexus 投入生产环境前的必要步骤,也是后续制品分发接口调用的安全基石。
3.1 管理员密码重置
Nexus 默认管理员账号为 admin,初始密码存储在 admin.password 文件中。若密码丢失或需要强制重置,可通过以下两种方式恢复。
3.1.1 通过文件恢复(首次启动)
- 登录 Nexus 服务器,进入数据目录(默认
/nexus-data)。 - 查看
admin.password文件内容:cat admin.password。 - 使用该密码登录后,系统会强制要求修改密码。
3.1.2 通过命令行强制重置(忘记密码)
# 停止 Nexus 服务
systemctl stop nexus
# 删除或重命名 admin.password 文件(触发重新生成)
mv /nexus-data/admin.password /nexus-data/admin.password.bak
# 启动 Nexus 服务
systemctl start nexus
# 等待服务就绪后,查看新生成的密码
cat /nexus-data/admin.password
3.2 匿名访问控制
匿名访问允许未经认证的用户浏览和下载制品。在生产环境中,建议根据安全策略严格限制匿名权限。配置路径:Administration → Security → Anonymous Access。
| 配置项 | 说明 | 推荐值 |
|---|---|---|
| Allow anonymous users to access the server | 是否允许匿名访问 | false(生产环境) |
| Realm Name | 匿名用户所属域 | NexusAuthorizingRealm |
| Username | 匿名用户映射的本地账号 | anonymous |
关闭匿名访问后,所有制品分发接口调用必须携带有效的认证凭证(如 Basic Auth 或 Bearer ),否则返回 401 Unauthorized。
3.3 SMTP 邮件配置
SMTP 配置用于发送密码重置邮件、系统告警通知以及用户邀请。配置路径:Administration → System → Email。
3.3.1 核心参数
| 参数 | 示例值 | 说明 |
|---|---|---|
| Host | smtp.example.com | SMTP 服务器地址 |
| Port | 587 | 端口(465/587/25) |
| Username | nexus@example.com | 认证用户名 |
| Password | ******** | 认证密码或应用专用密码 |
| Use SSL/TLS | true | 启用加密传输 |
3.3.2 测试邮件发送
配置完成后,点击 Verify Email Configuration 输入测试收件人地址。若收到测试邮件,则配置成功;否则检查防火墙、端口及认证信息。
3.4 HTTPS 证书配置
Nexus 默认使用 HTTP 协议。为保障制品分发接口调用的数据传输安全,必须启用 HTTPS。支持两种方式:使用内置 Jetty 配置或反向代理(Nginx/HAProxy)。
3.4.1 内置 Jetty HTTPS 配置
- 准备 SSL 证书(PEM 格式)和私钥文件。
- 将证书和私钥复制到
/nexus-data/etc/ssl/目录。 - 修改
/nexus-data/etc/nexus.properties:
application-port-ssl=8443
ssl.etc=/nexus-data/etc/ssl
nexus-args=${jetty-etc}/jetty.xml,${jetty-etc}/jetty-https.xml,${jetty-etc}/jetty-http-redirect-to-https.xml
- 重启 Nexus 服务:
systemctl restart nexus。 - 访问
https://<host>:8443验证。
3.4.2 反向代理 HTTPS 配置(推荐)
使用 Nginx 作为反向代理,将 HTTPS 流量转发至 Nexus 的 HTTP 端口(8081)。配置示例:
server {
listen 443 ssl;
server_name nexus.example.com;
ssl_certificate /etc/ssl/certs/nexus.crt;
ssl_certificate_key /etc/ssl/private/nexus.key;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3.5 系统健康检查
健康检查用于评估 Nexus 的运行状态,包括存储、数据库、线程池和系统资源。Nexus 提供内置健康检查端点及管理界面。
3.5.1 内置健康检查端点
通过 REST API 获取系统健康状态:
# 基础健康检查(无需认证)
curl -X GET http://localhost:8081/service/rest/v1/status
# 详细健康检查(需管理员权限)
curl -X GET -u admin:password http://localhost:8081/service/rest/v1/status/check
3.5.2 关键检查项
| 检查项 | 正常状态 | 异常处理 |
|---|---|---|
| System Status | RUNNING | 检查 JVM 堆内存、磁盘空间 |
| Database | CONNECTED | 检查 OrientDB 或 H2 数据库连接 |
| Blob Store | AVAILABLE | 检查存储后端(文件系统/S3) |
| Thread Pool | ACTIVE | 检查线程池队列积压情况 |
3.5.3 健康检查流程图
3.6 配置验证清单
完成上述配置后,建议使用以下清单进行验证,确保所有配置项生效:
- 密码重置: 使用新密码登录 Web UI 和 API。
- 匿名访问: 关闭匿名后,使用
curl不带认证访问仓库,确认返回 401。 - SMTP: 触发密码重置流程,检查是否收到邮件。
- HTTPS: 使用浏览器访问
https://<host>:8443,确认证书有效且无安全警告。 - 健康检查: 调用
/service/rest/v1/status/check,确认所有检查项为绿色。