maven加密nexus私服密码

使用的maven 版本 3.2.5

Nexus版本 3.X

1.准备用户master密钥文件

  Master Password 是加密server密码的一个密码. 

  在${user.home}\.m2 目录下创建 settings-security.xml文件. 

  比如C:\Users\Vito\.m2\settings-security.xml

2.生成MasterPassword  

$mvn --encrypt-master-password
$Password: (这里输入你指定的master明文密码)
${ESsDMOfmQu0HmKAcvsrCGnPQ+hBugnRhp+kFmEh5zj0=}
 (这是根据明文MasterPassword 计算的密码)

 

3.修改 settings-security.xml 内容  

<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
          <master>{OZ9T+teXD84HK2+/6JSe2DwruLTc9BaimAJLCIoNcNc=}</master>
</settingsSecurity>
<!--master password 明文 asdf , <master>标签内的是 步骤2. 生成的密码-->

 

4.生成 私服Repository密码 

$mvn --encrypt-password
$Password:  (输入你nexus私服对应Repository的密码)
${BRb43mpsn5EH1UOF0dYBkoUJccZDkzmO05p7ofNwuBU=}

 

5.修改本地{maven.home}\conf\settings.xml文件 

<settings>
    <servers>
.......
        <server>
            <!--Nexus私服 发布仓库 的账户密码 -->
            <id>maven-releases</id>
            <username>admin</username>
        <!--这个密码就是用加密后的masterpassword加密的admin123-->
        <password>{BRb43mpsn5EH1UOF0dYBkoUJccZDkzmO05p7ofNwuBU=}</password>        
        </server>
        <server>
            <!--Nexus私服 自己添加的第三方仓库的 的账户密码 -->
            <id>maven-3rd</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
.......
    </servers>
</settings>

  到此 就可以安全地 链接nexus对应的Repository 进行download 构件或者deploy构件了.

 

Tips:

  本方式的加密是完全基于本地的maven,算出密码并且配置两个本地配置文件的方式, 安全性其实并不完美.

  针对于Nexus Repository OSS 版本的Nexus也只能如此 . (也就是免费版的私服)

  如果有公司使用的是收费版Nexus Repository Pro版本,可以用更安全的方式, 本地settings.xml直接写nexus提供的密文.

  详见:Nexus官方文档 http://books.sonatype.com/nexus-book/reference3/security.html#user-token

  取部分截图贴上.

  


 2017-04-12 12:18:44 添加

posted on 2017-04-11 19:29  vito27  阅读(4714)  评论(0编辑  收藏  举报

导航