CI: gitea / nexus 서버 설정 반영
C:\Windows\System32\drivers\etc\hosts 파일에 doc\hosts 파일 내용 추가 doc\settings.xml -> maven settings.xml로 반영main
parent
d01ead50f9
commit
2e675ec45d
@ -0,0 +1,25 @@
|
|||||||
|
# Copyright (c) 1993-2009 Microsoft Corp.
|
||||||
|
#
|
||||||
|
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
|
||||||
|
#
|
||||||
|
# This file contains the mappings of IP addresses to host names. Each
|
||||||
|
# entry should be kept on an individual line. The IP address should
|
||||||
|
# be placed in the first column followed by the corresponding host name.
|
||||||
|
# The IP address and the host name should be separated by at least one
|
||||||
|
# space.
|
||||||
|
#
|
||||||
|
# Additionally, comments (such as these) may be inserted on individual
|
||||||
|
# lines or following the machine name denoted by a '#' symbol.
|
||||||
|
#
|
||||||
|
# For example:
|
||||||
|
#
|
||||||
|
# 102.54.94.97 rhino.acme.com # source server
|
||||||
|
# 38.25.63.10 x.acme.com # x client host
|
||||||
|
|
||||||
|
# localhost name resolution is handled within DNS itself.
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost
|
||||||
|
|
||||||
|
# 개발 repository server
|
||||||
|
211.119.124.110 xit.xit-git.com
|
||||||
|
211.119.124.110 xit.xit-nexus.com
|
@ -0,0 +1,99 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/SETTINGS/1.0.0">
|
||||||
|
<localRepository>C:/repo</localRepository>
|
||||||
|
<servers>
|
||||||
|
<server>
|
||||||
|
<id>maven-snapshot</id>
|
||||||
|
<username>xit-repo-user</username>
|
||||||
|
<password>xituser!@</password>
|
||||||
|
</server>
|
||||||
|
<server>
|
||||||
|
<id>maven-release</id>
|
||||||
|
<username>xit-repo-user</username>
|
||||||
|
<password>xituser!@</password>
|
||||||
|
</server>
|
||||||
|
<server>
|
||||||
|
<id>maven-3rdparty</id>
|
||||||
|
<username>xit-repo-user</username>
|
||||||
|
<password>xituser!@</password>
|
||||||
|
</server>
|
||||||
|
</servers>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<proxies>
|
||||||
|
<proxy>
|
||||||
|
<active>true</active>
|
||||||
|
<protocol>http</protocol>
|
||||||
|
<host>211.119.124.110</host>
|
||||||
|
<port>8081</port>
|
||||||
|
</proxy>
|
||||||
|
</proxies>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<mirrors>
|
||||||
|
<!--
|
||||||
|
<mirror>
|
||||||
|
<id>nexus</id>
|
||||||
|
<mirrorOf>*</mirrorOf>
|
||||||
|
<url>http://0.0.0.0</url>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-3rdparty/</url>
|
||||||
|
<blocked>false</blocked>
|
||||||
|
</mirror>
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
<mirror>
|
||||||
|
<id>maven-3rdparty</id>
|
||||||
|
<mirrorOf>*</mirrorOf>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-3rdparty/</url>
|
||||||
|
<blocked>false</blocked>
|
||||||
|
</mirror>
|
||||||
|
|
||||||
|
<mirror>
|
||||||
|
<id>xit-repo-snapshot</id>
|
||||||
|
<mirrorOf>*</mirrorOf>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-snapshots/</url>
|
||||||
|
<blocked>false</blocked>
|
||||||
|
</mirror>
|
||||||
|
|
||||||
|
<mirror>
|
||||||
|
<id>xit-repo-release</id>
|
||||||
|
<mirrorOf>*</mirrorOf>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-releases/</url>
|
||||||
|
<blocked>false</blocked>
|
||||||
|
</mirror>
|
||||||
|
-->
|
||||||
|
</mirrors>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>nexus</id>
|
||||||
|
<repositories>
|
||||||
|
<!--
|
||||||
|
<repository>
|
||||||
|
<id>maven-3rdparty</id>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-3rdparty/</url>
|
||||||
|
<layout>default</layout>
|
||||||
|
<snapshotPolicy>always</snapshotPolicy>
|
||||||
|
</repository>
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
<repository>
|
||||||
|
<id>maven-snapshots</id>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-snapshots/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>maven-releases</id>
|
||||||
|
<url>http://211.119.124.110:8081/repository/maven-releases/</url>
|
||||||
|
</repository>
|
||||||
|
-->
|
||||||
|
</repositories>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
|
||||||
|
<activeProfiles>
|
||||||
|
<activeProfile>nexus</activeProfile>
|
||||||
|
</activeProfiles>
|
||||||
|
|
||||||
|
</settings>
|
Binary file not shown.
@ -0,0 +1,216 @@
|
|||||||
|
package kr.xit.framework.support.cert;/*
|
||||||
|
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* - Neither the name of Sun Microsystems nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check out this {@link https://www.lesstif.com/pages/viewpage.action?pageId=12451848}
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* 1. download source
|
||||||
|
* curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java
|
||||||
|
*
|
||||||
|
* 2. compiling
|
||||||
|
* javac InstallCert.java
|
||||||
|
*
|
||||||
|
* 3. Run
|
||||||
|
* java -cp . InstallCert https://google.com:443
|
||||||
|
*
|
||||||
|
* 4. save peer's ssl cert to keystore(name is jssecacerts)
|
||||||
|
*
|
||||||
|
* 5. extract cert from saved keystore
|
||||||
|
* keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert -alias letsencrypt
|
||||||
|
*
|
||||||
|
* 6. import cert into JDK's keystore
|
||||||
|
* keytool -importcert -keystore ${JAVA_HOME}/jre/lib/security/cacerts -storepass changeit -file output.cert -alias letsencrypt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* http://blogs.sun.com/andreas/resource/InstallCert.java
|
||||||
|
* Use:
|
||||||
|
* java InstallCert hostname
|
||||||
|
* Example:
|
||||||
|
*% java InstallCert ecc.fedora.redhat.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.security.KeyStore;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.cert.CertificateException;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
|
||||||
|
import javax.net.ssl.SSLContext;
|
||||||
|
import javax.net.ssl.SSLException;
|
||||||
|
import javax.net.ssl.SSLSocket;
|
||||||
|
import javax.net.ssl.SSLSocketFactory;
|
||||||
|
import javax.net.ssl.TrustManager;
|
||||||
|
import javax.net.ssl.TrustManagerFactory;
|
||||||
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
/**
|
||||||
|
* Class used to add the server's certificate to the KeyStore
|
||||||
|
* with your trusted certificates.
|
||||||
|
*/
|
||||||
|
public class InstallCert {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
String host;
|
||||||
|
int port;
|
||||||
|
char[] passphrase;
|
||||||
|
if ((args.length == 1) || (args.length == 2)) {
|
||||||
|
String[] c = args[0].split(":");
|
||||||
|
host = c[0];
|
||||||
|
port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);
|
||||||
|
String p = (args.length == 1) ? "changeit" : args[1];
|
||||||
|
passphrase = p.toCharArray();
|
||||||
|
} else {
|
||||||
|
System.out.println("Usage: java InstallCert <host>[:port] [passphrase]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
File file = new File("jssecacerts");
|
||||||
|
if (file.isFile() == false) {
|
||||||
|
char SEP = File.separatorChar;
|
||||||
|
File dir = new File(System.getProperty("java.home") + SEP
|
||||||
|
+ "lib" + SEP + "security");
|
||||||
|
file = new File(dir, "jssecacerts");
|
||||||
|
if (file.isFile() == false) {
|
||||||
|
file = new File(dir, "cacerts");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("Loading KeyStore " + file + "...");
|
||||||
|
InputStream in = new FileInputStream(file);
|
||||||
|
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
|
||||||
|
ks.load(in, passphrase);
|
||||||
|
in.close();
|
||||||
|
SSLContext context = SSLContext.getInstance("TLS");
|
||||||
|
TrustManagerFactory tmf =
|
||||||
|
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
||||||
|
tmf.init(ks);
|
||||||
|
X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
|
||||||
|
SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);
|
||||||
|
context.init(null, new TrustManager[]{tm}, null);
|
||||||
|
SSLSocketFactory factory = context.getSocketFactory();
|
||||||
|
System.out.println("Opening connection to " + host + ":" + port + "...");
|
||||||
|
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
|
||||||
|
socket.setSoTimeout(10000);
|
||||||
|
try {
|
||||||
|
System.out.println("Starting SSL handshake...");
|
||||||
|
socket.startHandshake();
|
||||||
|
socket.close();
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("No errors, certificate is already trusted");
|
||||||
|
} catch (SSLException e) {
|
||||||
|
System.out.println();
|
||||||
|
e.printStackTrace(System.out);
|
||||||
|
}
|
||||||
|
X509Certificate[] chain = tm.chain;
|
||||||
|
if (chain == null) {
|
||||||
|
System.out.println("Could not obtain server certificate chain");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BufferedReader reader =
|
||||||
|
new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Server sent " + chain.length + " certificate(s):");
|
||||||
|
System.out.println();
|
||||||
|
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
|
||||||
|
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
||||||
|
for (int i = 0; i < chain.length; i++) {
|
||||||
|
X509Certificate cert = chain[i];
|
||||||
|
System.out.println
|
||||||
|
(" " + (i + 1) + " Subject " + cert.getSubjectDN());
|
||||||
|
System.out.println(" Issuer " + cert.getIssuerDN());
|
||||||
|
sha1.update(cert.getEncoded());
|
||||||
|
System.out.println(" sha1 " + toHexString(sha1.digest()));
|
||||||
|
md5.update(cert.getEncoded());
|
||||||
|
System.out.println(" md5 " + toHexString(md5.digest()));
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");
|
||||||
|
String line = reader.readLine().trim();
|
||||||
|
int k;
|
||||||
|
try {
|
||||||
|
k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
System.out.println("KeyStore not changed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
X509Certificate cert = chain[k];
|
||||||
|
String alias = host + "-" + (k + 1);
|
||||||
|
ks.setCertificateEntry(alias, cert);
|
||||||
|
OutputStream out = new FileOutputStream("jssecacerts");
|
||||||
|
ks.store(out, passphrase);
|
||||||
|
out.close();
|
||||||
|
System.out.println();
|
||||||
|
System.out.println(cert);
|
||||||
|
System.out.println();
|
||||||
|
System.out.println
|
||||||
|
("Added certificate to keystore 'jssecacerts' using alias '"
|
||||||
|
+ alias + "'");
|
||||||
|
}
|
||||||
|
private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();
|
||||||
|
private static String toHexString(byte[] bytes) {
|
||||||
|
StringBuilder sb = new StringBuilder(bytes.length * 3);
|
||||||
|
for (int b : bytes) {
|
||||||
|
b &= 0xff;
|
||||||
|
sb.append(HEXDIGITS[b >> 4]);
|
||||||
|
sb.append(HEXDIGITS[b & 15]);
|
||||||
|
sb.append(' ');
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
private static class SavingTrustManager implements X509TrustManager {
|
||||||
|
private final X509TrustManager tm;
|
||||||
|
private X509Certificate[] chain;
|
||||||
|
SavingTrustManager(X509TrustManager tm) {
|
||||||
|
this.tm = tm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public X509Certificate[] getAcceptedIssuers() {
|
||||||
|
return new X509Certificate[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkClientTrusted(X509Certificate[] chain, String authType)
|
||||||
|
throws CertificateException {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
public void checkServerTrusted(X509Certificate[] chain, String authType)
|
||||||
|
throws CertificateException {
|
||||||
|
this.chain = chain;
|
||||||
|
tm.checkServerTrusted(chain, authType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue