우연히 검색을 하다가 알게된 암호화된 패스워드 데이터를 복원하는 방법에 관련하여 설명하겠습니다.
젠킨스 구설설정에서 간혹 패스워드 입력하는 부분이 있는데, 그 항목을 입력 후 저장하게 되면 암호화 되어 구성파일에 저장이 됩니다.
sonarqube 구성설정을 하게 되면 secretPass항목이 암호화 되어 파일에 저장이 되는 것을 아래 처럼 확인 할 수 있습니다.
<?xml version='1.1' encoding='UTF-8'?>
<org.quality.gates.jenkins.plugin.GlobalConfig plugin="sonar-quality-gates@1.3.3-SNAPSHOT">
<listOfGlobalConfigData>
<org.quality.gates.jenkins.plugin.GlobalConfigDataForSonarInstance>
<name>sonarqube-8.9.6</name>
<username>user</username>
<sonarUrl>http://sonarqube.cicd.svc.cluster.local</sonarUrl>
<secretPass>{AQAAABAAAAAQlbcN0UMuhgKoKAkASWyo7j8A9O/rPmLtSEdC/XO62sc=}</secretPass>
<timeToWait>0</timeToWait>
<maxWaitTime>0</maxWaitTime>
</org.quality.gates.jenkins.plugin.GlobalConfigDataForSonarInstance>
</listOfGlobalConfigData>
<globalConfigurationService>
<listOfGlobalConfigInstances reference="../../listOfGlobalConfigData"/>
</globalConfigurationService>
</org.quality.gates.jenkins.plugin.GlobalConfig>
이 암호화된 항목을 복호화하는 방법은 젠킨스 프로그램에서 가능합니다.
설치된 젠킨스 웹 서버 주소에 /script 라는 패스를 추가하여 접속합니다.
http://젠킨스서버IP 또는 도메인:31178/script
위의 화면 처럼 로그인을 하게 되면 Script Console 화면으로 이동하게 됩니다. 이 콘솔 창에 암호화된 항목을 명령어를 사용하여 복호화하게 되면 됩니다.
복호화 명령어
hudson.util.Secret.decrypt("{암호화된 문자}")
복호화 명령어를 스크립트 콘솔창에 입력 후
println hudson.util.Secret.decrypt("{AQAAABAAAAAQlbcN0UMuhgKoKAkASWyo7j8A9O/rPmLtSEdC/XO62sc=}");
Run 버튼을 클릭하게 되면 암호화된 문자가 복호화 되어 결과 값이 나오게 됩니다. 아래 그림에는 결과 값을 안보이게 표시를 하게 된점 양해 바랍니다.