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