讨论广场 问答详情
#跟着坚果学鸿蒙#我在学习鸿蒙中,遇到了一个问题怎么理解呢?为了保障用户在使用ohpm-repo过程中更加安全可靠,我们收集如下推荐安全配置项,用户可以根据自己的需要采纳配置?
敢为天下先! 2025-05-30 14:44:54
77 评论 分享
harmonyos

#跟着坚果学鸿蒙#我在学习鸿蒙中,遇到了一个问题怎么理解呢?为了保障用户在使用ohpm-repo过程中更加安全可靠,我们收集如下推荐安全配置项,用户可以根据自己的需要采纳配置?

77 评论 分享
写回答
全部评论(1)

#跟着坚果学鸿蒙#

安全配置指南

为了保障用户在使用ohpm-repo过程中更加安全可靠,我们收集如下推荐安全配置项,用户可以根据自己的需要采纳配置。

最小权限启动

为降低风险,提高系统的稳定性和可维护性,ohpm-repo必须使用非root权限进行启动部署。

加密连接和监听具体地址

默认情况下,listen的配置值为http://localhost:8088,即使用HTTP协议,监听地址为localhost。为了数据传输更加安全,我们建议listen配置的监听地址使用具体机器ip,通信协议使用更安全的HTTPS,或者在ohpm-repo之上使用HTTPS反向代理 ;当使用自定义认证插件或者自定义存储插件时,如果存在网络通信,通信协议也建议使用HTTPS。

listen: https://<ohpm-repo部署机器ip>:8088

多实例部署

ohpm-repo用于存储私有仓库三方包数据,为了避免数据丢失,且保证ohpm-repo的高可用性,推荐元数据存储使用mysql包数据存储使用自定义存储插件,通过使用负载均衡,部署ohpm-repo多个实例

Mysql存储

  • type: 插件名称,配置为mysql。
  • config: 插件配置,具体为:
    • host: 数据库主机地址。
    • port: 数据库端口。
    • username: 数据库的用户名。
    • password: 数据库的用户密码(请配置明文, 最终在部署目录中会转换为密文)。
    • database: 数据库名。

参考配置如下:

db:                         
  type: mysql
  config:
    host: "localhost"
    port: 3306
    username: "tctAdmin"
    password: "password"
    database: "repo"

自定义存储

使用自定义插件存储,具体配置为:

  • type: 插件名称,为custom,是自定义存储插件类型。
  • config: 插件配置,具体为:
    • export_name:待书写插件export的类名。
    • plugin_path:插件的绝对路径或者相对于ohpm-repo软件包的路径,建议将插件放在软件包的plugins目录下。
    • custom_field:自定义字段,通过引入ohpm-repo解压包中libs/common/getStorageConfigInfo.js的getStorageConfigInfo方法获取自定义字段的值。
    • server: 本地仓库下载地址:
      • 当配置项listen的host不为0.0.0.0时,则默认取listen的完整格式,例如listen为127.0.0.1:8088,故server默认值为https://127.0.0.1:8088;
      • 如果配置项listen的host为0.0.0.0,则sever中的host默认为localhost,如https://localhost:8088。建议手动修改host为本机的ip/域名,例如listen为0.0.0.0:8088,故server需配置为https://<本机ip/域名>:8088;
      • 如果需要通过反向代理来访问ohpm-repo服务,则该字段须配置为反向代理服务器的域名地址。多实例部署ohpm-repo时必须配置反向代理服务器,且需要配置use_reverse_proxy值为true。
      • store:
          type: custom                                            
          config:
            export_name: "MyStorage"                              
            plugin_path: "plugins/storagePlugin/MyStorage"        
            custom_field: "test"                                  
            #server: https://localhost:8088

         

2025-05-30 14:45:44