This commit is contained in:
dDogge 2025-03-23 12:04:21 +01:00
commit a31f979341
32 changed files with 763 additions and 0 deletions

BIN
server/TLSServer.class Normal file

Binary file not shown.

62
server/TLSServer.java Normal file
View file

@ -0,0 +1,62 @@
// Douglas Fjällrud, Axel Blomén, Grupp 35
package server;
import javax.net.ssl.*;
import java.io.*;
import java.security.*;
import java.security.cert.CertificateException;
public class TLSServer {
private static final String SERVER_KEYSTORE_PATH = "../server.p12";
private static final String SERVER_KEYSTORE_PASSWORD = "server";
private static final int TLS_PORT = 8043;
public static void main(String[] args) {
try {
KeyStore keyStore = KeyStore.getInstance("PKCS12");
try (FileInputStream fis = new FileInputStream(SERVER_KEYSTORE_PATH)) {
keyStore.load(fis, SERVER_KEYSTORE_PASSWORD.toCharArray());
}
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(keyStore, SERVER_KEYSTORE_PASSWORD.toCharArray());
KeyManager[] keyManagers = kmf.getKeyManagers();
SSLContext sslContext = SSLContext.getInstance("TLSv1.3");
sslContext.init(keyManagers, null, new SecureRandom());
SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
try (SSLServerSocket sslServerSocket =
(SSLServerSocket) sslServerSocketFactory.createServerSocket(TLS_PORT)) {
System.out.println("TLS-server startad. Lyssnar på port " + TLS_PORT + "...");
while (true) {
try (SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept()) {
String[] enabledCiphers = { "TLS_AES_128_GCM_SHA256" };
sslSocket.setEnabledCipherSuites(enabledCiphers);
sslSocket.startHandshake();
BufferedReader br = new BufferedReader(
new InputStreamReader(sslSocket.getInputStream()));
PrintWriter pw = new PrintWriter(sslSocket.getOutputStream(), true);
String line;
while ((line = br.readLine()) != null) {
System.out.println("Mottaget: " + line);
pw.println("Echo: " + line);
}
} catch (IOException e) {
System.err.println("Fel vid hantering av klientanslutning: " + e.getMessage());
}
}
}
} catch (KeyStoreException | IOException | NoSuchAlgorithmException
| CertificateException | KeyManagementException | UnrecoverableKeyException e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,75 @@
// Douglas Fjällrud, Axel Blomén, Grupp 35
package server;
import javax.net.ssl.*;
import java.io.*;
import java.security.*;
import java.security.cert.CertificateException;
public class TLSServerMutual {
private static final String SERVER_KEYSTORE_PATH = "../server.p12";
private static final String SERVER_KEYSTORE_PASSWORD = "server";
private static final String SERVER_TRUSTSTORE_PATH = "serverTrustStore.jks";
private static final String SERVER_TRUSTSTORE_PASSWORD = "trustpass";
private static final int TLS_PORT = 8043;
public static void main(String[] args) {
try {
KeyStore serverKeyStore = KeyStore.getInstance("PKCS12");
try (FileInputStream fis = new FileInputStream(SERVER_KEYSTORE_PATH)) {
serverKeyStore.load(fis, SERVER_KEYSTORE_PASSWORD.toCharArray());
}
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(serverKeyStore, SERVER_KEYSTORE_PASSWORD.toCharArray());
KeyManager[] keyManagers = kmf.getKeyManagers();
KeyStore trustStore = KeyStore.getInstance("JKS");
try (FileInputStream trustFis = new FileInputStream(SERVER_TRUSTSTORE_PATH)) {
trustStore.load(trustFis, SERVER_TRUSTSTORE_PASSWORD.toCharArray());
}
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(trustStore);
TrustManager[] trustManagers = tmf.getTrustManagers();
SSLContext sslContext = SSLContext.getInstance("TLSv1.3");
sslContext.init(keyManagers, trustManagers, new SecureRandom());
SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
try (SSLServerSocket sslServerSocket =
(SSLServerSocket) sslServerSocketFactory.createServerSocket(TLS_PORT)) {
System.out.println("TLS-server startad på port " + TLS_PORT + ".");
String[] ciphers = { "TLS_AES_128_GCM_SHA256" };
sslServerSocket.setEnabledCipherSuites(ciphers);
sslServerSocket.setNeedClientAuth(true);
while (true) {
try (SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(sslSocket.getInputStream()));
PrintWriter pw = new PrintWriter(sslSocket.getOutputStream(), true)) {
System.out.println("Klient ansluten: " + sslSocket.getInetAddress());
String line;
while ((line = br.readLine()) != null) {
System.out.println("Mottaget: " + line);
pw.println("Echo: " + line);
}
System.out.println("Klient frånkopplad.");
} catch (IOException e) {
System.err.println("Fel vid hantering av klientanslutning: " + e.getMessage());
}
}
}
} catch (KeyStoreException | IOException | NoSuchAlgorithmException
| CertificateException | KeyManagementException | UnrecoverableKeyException e) {
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,89 @@
MAC: sha256, Iteration 2048
MAC length: 32, salt length: 8
PKCS7 Encrypted data: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256
Certificate bag
Bag Attributes
localKeyID: 3E 59 67 24 98 50 F2 0B FA AB BD 16 DE 68 59 C5 C7 A7 F9 BC
subject=C=SE, ST=Scania, L=Helsingborg, O=LTH, CN=localhost
issuer=C=SE, ST=Scania, L=Helsingborg, O=LTH, CN=Demo CA
-----BEGIN CERTIFICATE-----
MIIDlTCCAn2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQGEwJTRTEP
MA0GA1UECAwGU2NhbmlhMRQwEgYDVQQHDAtIZWxzaW5nYm9yZzEMMAoGA1UECgwD
TFRIMRAwDgYDVQQDDAdEZW1vIENBMB4XDTI1MDMyMDE4NTYzM1oXDTI2MDMyMDE4
NTYzM1owVjELMAkGA1UEBhMCU0UxDzANBgNVBAgMBlNjYW5pYTEUMBIGA1UEBwwL
SGVsc2luZ2JvcmcxDDAKBgNVBAoMA0xUSDESMBAGA1UEAwwJbG9jYWxob3N0MIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArzo3k9eJeToPmmVxuf5exSQL
uQ0/1N7Sc8mKWKRZSdXRmGQSDaO9sKYCfcGT/BhhwvSOyYYDOfRCFF/VUM41pPG7
WKzO6/TUbDrqvsarbt55NrWnFVzR/MaH0OWZsD6MlOfk4t5S4xrn+YSv/6vLPq/2
8u4clLfQ9HuIRZ2Y/06iPuVmxV3cTwS7OLjVbRpzoqFv6bw7sbGxZzkMFjI/U1zC
aFG1pK4C0Kv/exSG7o7GaYAtpZpleZ3UhLTPee51/4mfBrC903k+Zi5eyotbEfxj
aHwdcoza8b5CvHxy0lFlq4w1quporF0Sz4y1uYUIE0tnXnQyptuINgGvUhyJGQID
AQABo3AwbjAfBgNVHSMEGDAWgBS4Uae+NSo88fU/z5qpeJzZZAYX4DAJBgNVHRME
AjAAMAsGA1UdDwQEAwIDqDAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYE
FHPTfM6n7lZjsjN5CVZFZQSoZL6rMA0GCSqGSIb3DQEBCwUAA4IBAQAt3W8hfwuG
HdxtjJ4uIzuIAKGby7j+lgBO3upSx4sMkBdqEWoizu02U+DBMOGE4zq/zYYkLWcR
vFxpT5XVR9bRtT9w/gjuQ6unT+UnmQJ3qujdIw5Iuo92bdWtAIFggWSbLkD93KCz
pObAEZ9mFl9Gownz9Z2xPm0SKPFqli1xcEwrmH+zskJqw21JhFZN424djiaJxS+d
4kDE0IvHqbgODeGanLC38QJQMOaaaCSjxhi00FUrSuidjz9CWfklCDYQrRQXfJB4
w0unHVtXaG0vYily8NAY7rCMd08USvd6r8UTjYy87UxYJ3TI8Hi0XLB/ltHkTkeQ
Sm1Nt5Yv6Ht+
-----END CERTIFICATE-----
Certificate bag
Bag Attributes: <No Attributes>
subject=C=SE, ST=Scania, L=Helsingborg, O=LTH, CN=Demo CA
issuer=C=SE, ST=Scania, L=Helsingborg, O=LTH, CN=Demo CA
-----BEGIN CERTIFICATE-----
MIIDiTCCAnGgAwIBAgIUEC/916IPhPFZDzRcBKdroSIvt6owDQYJKoZIhvcNAQEL
BQAwVDELMAkGA1UEBhMCU0UxDzANBgNVBAgMBlNjYW5pYTEUMBIGA1UEBwwLSGVs
c2luZ2JvcmcxDDAKBgNVBAoMA0xUSDEQMA4GA1UEAwwHRGVtbyBDQTAeFw0yNTAz
MTgyMTI2NTRaFw0zNTAzMTYyMTI2NTRaMFQxCzAJBgNVBAYTAlNFMQ8wDQYDVQQI
DAZTY2FuaWExFDASBgNVBAcMC0hlbHNpbmdib3JnMQwwCgYDVQQKDANMVEgxEDAO
BgNVBAMMB0RlbW8gQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx
ha5gGVlMSegf8iC2R+qUFveWrYQzCCNkb/RXB9dVpnkxB3plwTfzy761KdeJZptV
D0kGa7iuncYtDM0j0jFOdp0Rk2a4rpoUJRm8beCMVV6fQXnKnX6dlUHXP7Xd9qh+
y/e/N2fm5ut5pi+QgJ3Y33PPOcAB2Jsrpg/kAYbjT+TB1rD3xMPFcNrv7eJYV64S
BSCAe7vTW+2QRWa8ullMfbnona4QRTQ+2Rn4ibPQPAMlL0K2FGisGfbB2aTsi8Ru
ZMmfvqDRRFJlIC7MTcsH6RG0WdD4YPyg0banpDCsQaywo0v6owBHi2YEmyvYt85s
3zBGyZ850qdh7SKF8JqNAgMBAAGjUzBRMB0GA1UdDgQWBBS4Uae+NSo88fU/z5qp
eJzZZAYX4DAfBgNVHSMEGDAWgBS4Uae+NSo88fU/z5qpeJzZZAYX4DAPBgNVHRMB
Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQA+LOL8gcO1A+a/UbBUKf1rYOqR
LwV7jIOwD1A+SUGIQV7HwiVsPEbG30MAUY7/HjMCtw3e1nOME2byCrb8e4Q1/zXs
dP6C5fW8XRZ1IqUIOHlxwRTdnRicwe5mhF+8VCXJwBC6gYaxy1ph3KeSp6vHiWQO
aFuPSgUaYd3m6mT6Q9N65j9eSSaO48gtS/ZcfbrDw0dV3BZiKltUm75gjEyxfYfx
9cFTiVawg13plvaTyUR7O3wKbJMyNCeQKhSURi7n8p80E2SSpUjJSzlv7oQ8j57+
HTW+qygw0skaTHajWYUpNnL3PbMIWWJSmcleO97cOpLVEpkD7vkRVFATDSkO
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256
Bag Attributes
localKeyID: 3E 59 67 24 98 50 F2 0B FA AB BD 16 DE 68 59 C5 C7 A7 F9 BC
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvOjeT14l5Og+a
ZXG5/l7FJAu5DT/U3tJzyYpYpFlJ1dGYZBINo72wpgJ9wZP8GGHC9I7JhgM59EIU
X9VQzjWk8btYrM7r9NRsOuq+xqtu3nk2tacVXNH8xofQ5ZmwPoyU5+Ti3lLjGuf5
hK//q8s+r/by7hyUt9D0e4hFnZj/TqI+5WbFXdxPBLs4uNVtGnOioW/pvDuxsbFn
OQwWMj9TXMJoUbWkrgLQq/97FIbujsZpgC2lmmV5ndSEtM957nX/iZ8GsL3TeT5m
Ll7Ki1sR/GNofB1yjNrxvkK8fHLSUWWrjDWq6misXRLPjLW5hQgTS2dedDKm24g2
Aa9SHIkZAgMBAAECggEAF//RPN54ZbIeEPdz7BV6xWV6dY3rACzEhjdES3+2+vXe
DxElp9iVUmxqSu8IZa6xNRJpvBAuwPFDW6cEgFy93Cl/j1WbwZV2wpwPKrHrKPQv
hd67U6Gy4PwP/fx0YD8w4fQg1TG+CHzW6MXTlSDiZWOUXxFduMC0TcfdkitTmSPh
w+oMhQrAhBvoRa5d56sQs0O3pjCTJvh6h1GYbhgCG6qf4CD2EiJYphshu7hRBaG0
HZIYAPp6BYsjETdLJ1uv4i5aAkndJmghPD4rcvxgAPTNP5VHt4imISNQFU4lB29P
iOUQVxz8K3qEm2UGifTKBdUl+7Jqa/P3wIDTbaiXQQKBgQDk3fklgIKKZ+jveGJn
ot5kNDsZeKhuc36z7hMliSkNyMtDOTNPUIX0cB3xBiMqVohGa9i36nMgRYvXo6Kp
VMZIZKPJ7CtyCVtrFeH9CJKOZ3eyjcs1DXXccLDW5SIllNb0cJm7GShjXIldAHez
YMuP7MZV+UwDNOFdDtUPeOKGNwKBgQDEAEz77twS9kT3+EbPunawGzjZlOSIlB0L
Kzn8dqnQsefetMyKSlVhpOVyp08AeV+piZHafe9I2nucPd3GWs781roiNGvB+ILp
jIz2CAXyng93O1xHZueaSgYVzkbXWTDGVF7SSxp0ahpwR0cmbO+orLQwZr4kijVi
spDniQbDLwKBgQCPyJifI+ZfN7rSv6nq/BqFj37VmMUQZwTh258xxMMDAvQYLpZ6
rNcLY2icJMPw9F43B8gme2eKjca2Wfp2MWlEz91KnVIKGbDSTPQmOL2CM6Syi3xv
vx4duLqQt3FFdQW6mgcq0TpbeiZeRE3vZs9cg19zYeSMWyt+gDQAvWxq7wKBgHiK
/s3K34rB7zTaeyJyuWAhvdsDWXIuNZaS5TzB9jqlz8cGRu2ePdipw3u6LjpKa20n
cI6B+VJDHNbArc66NqcFoMA8oTFQl6LvkBoYYSAP2c8osN4xCau4bvmmPadf8UFo
zlBjZEfIoa4ACGA3i0WfwcoqxjJO1fp3e+sKOSB9AoGBAOGbi5fIFMFIyimeDBD1
+aSj7oa0HC0S3mgTfM+O4/VUPsd+7vXQRBDPXxbJz5RLADgmkQzo6o63y3ngsBRF
A091WPtzbWOawDlpi1fZ6YgIRjkuZr50mfvs0DspDyE5RIB2qYxkET6Y8Bj65HG8
F1jgqbqCcZVJczTUniTK+wQd
-----END PRIVATE KEY-----

BIN
server/serverTrustStore.jks Normal file

Binary file not shown.

22
server/server_cert.pem Normal file
View file

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDlTCCAn2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQGEwJTRTEP
MA0GA1UECAwGU2NhbmlhMRQwEgYDVQQHDAtIZWxzaW5nYm9yZzEMMAoGA1UECgwD
TFRIMRAwDgYDVQQDDAdEZW1vIENBMB4XDTI1MDMyMDE4NTYzM1oXDTI2MDMyMDE4
NTYzM1owVjELMAkGA1UEBhMCU0UxDzANBgNVBAgMBlNjYW5pYTEUMBIGA1UEBwwL
SGVsc2luZ2JvcmcxDDAKBgNVBAoMA0xUSDESMBAGA1UEAwwJbG9jYWxob3N0MIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArzo3k9eJeToPmmVxuf5exSQL
uQ0/1N7Sc8mKWKRZSdXRmGQSDaO9sKYCfcGT/BhhwvSOyYYDOfRCFF/VUM41pPG7
WKzO6/TUbDrqvsarbt55NrWnFVzR/MaH0OWZsD6MlOfk4t5S4xrn+YSv/6vLPq/2
8u4clLfQ9HuIRZ2Y/06iPuVmxV3cTwS7OLjVbRpzoqFv6bw7sbGxZzkMFjI/U1zC
aFG1pK4C0Kv/exSG7o7GaYAtpZpleZ3UhLTPee51/4mfBrC903k+Zi5eyotbEfxj
aHwdcoza8b5CvHxy0lFlq4w1quporF0Sz4y1uYUIE0tnXnQyptuINgGvUhyJGQID
AQABo3AwbjAfBgNVHSMEGDAWgBS4Uae+NSo88fU/z5qpeJzZZAYX4DAJBgNVHRME
AjAAMAsGA1UdDwQEAwIDqDAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYE
FHPTfM6n7lZjsjN5CVZFZQSoZL6rMA0GCSqGSIb3DQEBCwUAA4IBAQAt3W8hfwuG
HdxtjJ4uIzuIAKGby7j+lgBO3upSx4sMkBdqEWoizu02U+DBMOGE4zq/zYYkLWcR
vFxpT5XVR9bRtT9w/gjuQ6unT+UnmQJ3qujdIw5Iuo92bdWtAIFggWSbLkD93KCz
pObAEZ9mFl9Gownz9Z2xPm0SKPFqli1xcEwrmH+zskJqw21JhFZN424djiaJxS+d
4kDE0IvHqbgODeGanLC38QJQMOaaaCSjxhi00FUrSuidjz9CWfklCDYQrRQXfJB4
w0unHVtXaG0vYily8NAY7rCMd08USvd6r8UTjYy87UxYJ3TI8Hi0XLB/ltHkTkeQ
Sm1Nt5Yv6Ht+
-----END CERTIFICATE-----

View file

@ -0,0 +1,84 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=SE, ST=Scania, L=Helsingborg, O=LTH, CN=Demo CA
Validity
Not Before: Mar 20 18:56:33 2025 GMT
Not After : Mar 20 18:56:33 2026 GMT
Subject: C=SE, ST=Scania, L=Helsingborg, O=LTH, CN=localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:af:3a:37:93:d7:89:79:3a:0f:9a:65:71:b9:fe:
5e:c5:24:0b:b9:0d:3f:d4:de:d2:73:c9:8a:58:a4:
59:49:d5:d1:98:64:12:0d:a3:bd:b0:a6:02:7d:c1:
93:fc:18:61:c2:f4:8e:c9:86:03:39:f4:42:14:5f:
d5:50:ce:35:a4:f1:bb:58:ac:ce:eb:f4:d4:6c:3a:
ea:be:c6:ab:6e:de:79:36:b5:a7:15:5c:d1:fc:c6:
87:d0:e5:99:b0:3e:8c:94:e7:e4:e2:de:52:e3:1a:
e7:f9:84:af:ff:ab:cb:3e:af:f6:f2:ee:1c:94:b7:
d0:f4:7b:88:45:9d:98:ff:4e:a2:3e:e5:66:c5:5d:
dc:4f:04:bb:38:b8:d5:6d:1a:73:a2:a1:6f:e9:bc:
3b:b1:b1:b1:67:39:0c:16:32:3f:53:5c:c2:68:51:
b5:a4:ae:02:d0:ab:ff:7b:14:86:ee:8e:c6:69:80:
2d:a5:9a:65:79:9d:d4:84:b4:cf:79:ee:75:ff:89:
9f:06:b0:bd:d3:79:3e:66:2e:5e:ca:8b:5b:11:fc:
63:68:7c:1d:72:8c:da:f1:be:42:bc:7c:72:d2:51:
65:ab:8c:35:aa:ea:68:ac:5d:12:cf:8c:b5:b9:85:
08:13:4b:67:5e:74:32:a6:db:88:36:01:af:52:1c:
89:19
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
B8:51:A7:BE:35:2A:3C:F1:F5:3F:CF:9A:A9:78:9C:D9:64:06:17:E0
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Key Encipherment, Key Agreement
X509v3 Subject Alternative Name:
DNS:localhost
X509v3 Subject Key Identifier:
73:D3:7C:CE:A7:EE:56:63:B2:33:79:09:56:45:65:04:A8:64:BE:AB
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
2d:dd:6f:21:7f:0b:86:1d:dc:6d:8c:9e:2e:23:3b:88:00:a1:
9b:cb:b8:fe:96:00:4e:de:ea:52:c7:8b:0c:90:17:6a:11:6a:
22:ce:ed:36:53:e0:c1:30:e1:84:e3:3a:bf:cd:86:24:2d:67:
11:bc:5c:69:4f:95:d5:47:d6:d1:b5:3f:70:fe:08:ee:43:ab:
a7:4f:e5:27:99:02:77:aa:e8:dd:23:0e:48:ba:8f:76:6d:d5:
ad:00:81:60:81:64:9b:2e:40:fd:dc:a0:b3:a4:e6:c0:11:9f:
66:16:5f:46:a3:09:f3:f5:9d:b1:3e:6d:12:28:f1:6a:96:2d:
71:70:4c:2b:98:7f:b3:b2:42:6a:c3:6d:49:84:56:4d:e3:6e:
1d:8e:26:89:c5:2f:9d:e2:40:c4:d0:8b:c7:a9:b8:0e:0d:e1:
9a:9c:b0:b7:f1:02:50:30:e6:9a:68:24:a3:c6:18:b4:d0:55:
2b:4a:e8:9d:8f:3f:42:59:f9:25:08:36:10:ad:14:17:7c:90:
78:c3:4b:a7:1d:5b:57:68:6d:2f:62:29:72:f0:d0:18:ee:b0:
8c:77:4f:14:4a:f7:7a:af:c5:13:8d:8c:bc:ed:4c:58:27:74:
c8:f0:78:b4:5c:b0:7f:96:d1:e4:4e:47:90:4a:6d:4d:b7:96:
2f:e8:7b:7e
-----BEGIN CERTIFICATE-----
MIIDlTCCAn2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQGEwJTRTEP
MA0GA1UECAwGU2NhbmlhMRQwEgYDVQQHDAtIZWxzaW5nYm9yZzEMMAoGA1UECgwD
TFRIMRAwDgYDVQQDDAdEZW1vIENBMB4XDTI1MDMyMDE4NTYzM1oXDTI2MDMyMDE4
NTYzM1owVjELMAkGA1UEBhMCU0UxDzANBgNVBAgMBlNjYW5pYTEUMBIGA1UEBwwL
SGVsc2luZ2JvcmcxDDAKBgNVBAoMA0xUSDESMBAGA1UEAwwJbG9jYWxob3N0MIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArzo3k9eJeToPmmVxuf5exSQL
uQ0/1N7Sc8mKWKRZSdXRmGQSDaO9sKYCfcGT/BhhwvSOyYYDOfRCFF/VUM41pPG7
WKzO6/TUbDrqvsarbt55NrWnFVzR/MaH0OWZsD6MlOfk4t5S4xrn+YSv/6vLPq/2
8u4clLfQ9HuIRZ2Y/06iPuVmxV3cTwS7OLjVbRpzoqFv6bw7sbGxZzkMFjI/U1zC
aFG1pK4C0Kv/exSG7o7GaYAtpZpleZ3UhLTPee51/4mfBrC903k+Zi5eyotbEfxj
aHwdcoza8b5CvHxy0lFlq4w1quporF0Sz4y1uYUIE0tnXnQyptuINgGvUhyJGQID
AQABo3AwbjAfBgNVHSMEGDAWgBS4Uae+NSo88fU/z5qpeJzZZAYX4DAJBgNVHRME
AjAAMAsGA1UdDwQEAwIDqDAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYE
FHPTfM6n7lZjsjN5CVZFZQSoZL6rMA0GCSqGSIb3DQEBCwUAA4IBAQAt3W8hfwuG
HdxtjJ4uIzuIAKGby7j+lgBO3upSx4sMkBdqEWoizu02U+DBMOGE4zq/zYYkLWcR
vFxpT5XVR9bRtT9w/gjuQ6unT+UnmQJ3qujdIw5Iuo92bdWtAIFggWSbLkD93KCz
pObAEZ9mFl9Gownz9Z2xPm0SKPFqli1xcEwrmH+zskJqw21JhFZN424djiaJxS+d
4kDE0IvHqbgODeGanLC38QJQMOaaaCSjxhi00FUrSuidjz9CWfklCDYQrRQXfJB4
w0unHVtXaG0vYily8NAY7rCMd08USvd6r8UTjYy87UxYJ3TI8Hi0XLB/ltHkTkeQ
Sm1Nt5Yv6Ht+
-----END CERTIFICATE-----

16
server/server_csr.pem Normal file
View file

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICmzCCAYMCAQAwVjELMAkGA1UEBhMCU0UxDzANBgNVBAgMBlNjYW5pYTEUMBIG
A1UEBwwLSGVsc2luZ2JvcmcxDDAKBgNVBAoMA0xUSDESMBAGA1UEAwwJbG9jYWxo
b3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArzo3k9eJeToPmmVx
uf5exSQLuQ0/1N7Sc8mKWKRZSdXRmGQSDaO9sKYCfcGT/BhhwvSOyYYDOfRCFF/V
UM41pPG7WKzO6/TUbDrqvsarbt55NrWnFVzR/MaH0OWZsD6MlOfk4t5S4xrn+YSv
/6vLPq/28u4clLfQ9HuIRZ2Y/06iPuVmxV3cTwS7OLjVbRpzoqFv6bw7sbGxZzkM
FjI/U1zCaFG1pK4C0Kv/exSG7o7GaYAtpZpleZ3UhLTPee51/4mfBrC903k+Zi5e
yotbEfxjaHwdcoza8b5CvHxy0lFlq4w1quporF0Sz4y1uYUIE0tnXnQyptuINgGv
UhyJGQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAI7eNAViJ6UB0mywoHVVyzse
7krFYddtqDp2JwLFqE3a90k1SWRnc9snvdo0B5G6LiNgyTKxHq0NE05Hpbf8PDBF
f+rTyq07QbrkrjJ/FziZ3mUlikqayxbdtx3pO/EL1jMosENLAZxAfG1CfL85+n7c
VCffPAUASvuDu9pzKu6MwVpwi3TgTITkAZZZIac5sMuhqsEOzHjscg8YiGoaYxPl
+E9dDUJpqcKecLzgXqLG8I2CAy/Xs/Xw/tgQGexfqbTcp2Ez4x+Oo0PEq/B0rG/M
frUweajS5MxdJOjaUvz66D8J+n/lhmuAibEbKNOeIXjAyamqy8+qx/uXz4cI5k4=
-----END CERTIFICATE REQUEST-----

30
server/server_key.pem Normal file
View file

@ -0,0 +1,30 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQqjipvW9aLGDHasMg
pL53fwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEAQIEEHZMfqhbnq+BQkK9
IGJ0EMcEggTQ+46R42UPGUWsGaTEKZx9F/LBb+ke2pdCMxHMZj2/NS2r5OOHEO4Q
bdfkmU5lrxjQ//M2hnduCTwQI/FRYZNs+WLQm9Sy7zgUqzjhDGyBIHyJnyusyHOM
72VKYSBhfOy2hqOKjGE2bIIMe9g/G/TNNK4rKaR6Ef3J5Qq/CovSL/RcqpbdFh5L
nyEl+58QYva2IDazilbF7K80RSRSW9MFvbdIA1iHLOXTatxrbS82DZNlr8QRWp4g
zshy8qMDNirNfaVCmB1Di3iVjPyoEpQ3TX0QZ/tzp+py2Rkku5muBFjZufpt+p/T
O49K172yKotf7t68WJWwO9AXY9r8+8D44vgGLSdxgKzQqy1qOk4zWaq8m8gZrPY2
kNeMDdA/NesQB7fmsdKyJBT0VGA7K1c0MxoiPM3GMeM80xRZCebxO9aN51SNbzLx
CIVvB10YuLXyTGYWOuU6Gi7RWUm15aKmLEc14ByQvYFz88HcNOB3ZQyg1YfEeo9j
1LL7KADt4GkzehqgzyJYyMsDerXR1zllk63QpeQbbRuzWTRdf1cqwliznH8Qy0iL
4GZQrmMxKAC2KML3p2boovBHqEimm4iG8W1FhaKxMtb1s+OF2heFtfrEL/LNhhMA
+l1jUzH4yH4wScVOX7oFsxWtTCxIRBo0j1SNCvL21i1R7c6cwEKCkEAoQ40sOFbQ
zX7SBV1pntMooRTceOuGtMSOpKOq96UoTU2b4yf8CosZqp5L2eleeZsUIRhpV6ZR
pnmKY5k72Kow6Afc881rU9PezRS5jqPi3msJn11d9glQYROA2VFfPn7HK0Rh6cr6
TEh6A1EEjR3sUOEVVAR1PLC9jH2b7o5BadzTGlXdfagF0CKk7jubO1JUuHOdh7Ni
HoLhAOTp+8LYvWyUJmGy3Myy7kGX0ISbzSato/7ky8OZiqI9Y+vU+TXV+Ox8/dvI
bUkvKGprHEdPmoahh+ulRyRoXgQlD2vUYOqZD7UKDgwOYI+PkbgehGQ+IsqklYWb
Sa3oa3KecPehYVjS7kuXA4VA6uMztgZSGqL2HnMzhm0Zj4/Xey1AqrmlbcqsO8K8
5bGCuWSqmbsVCNnrASASJ2JlcAH4W28qWT4jkoJOzkVAUKtW/eo7za8KOQibwc/C
6YYi1HYS6UzfJGkRY3HNCsia0F8mf8B/FppbQRtAInDh9aAntMuetz9K6J2Ehp1L
r5k/tpMS44j0Bbz/+5DybKECndg7AadwhwVfssXZMyJyECf5HIuDHQlsUQegkO89
mq6QtjQraHEZMG5mYN0c3/WaG5PPMc0rs84Bxe/XuxdB3isdBiaJ8tXXMfCfVZSi
KH+SIVND1p/S54QxVE+VZqPvW3YQc5BMjr5gk2VQv34YYJlw+OHK9ivKwODKk76/
bT0tpZq/ixuSOu2SUncF3R++ic6PO26HfpNIBWFZeAogb+mXkpzS0L73+fFy+Q7Z
yM/ly4IPALvf6VPgT0MAVQH+CyZ57jjgCkUoIS6OB6NhQKhRZweyA16y7TS5u19O
tXeCe8qOwSe/ixEQ/RjEh4IlALt2/95gSrJNnXwRFL8J4Xbfe80LAQVt6agcsc7w
d13sNJ724Yab5oWP7TdoyTBZGAdtFb1ldkfTT7pSLLXhpSNSE0mCqFc=
-----END ENCRYPTED PRIVATE KEY-----

6
server/server_v3.txt Normal file
View file

@ -0,0 +1,6 @@
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = keyAgreement, keyEncipherment, digitalSignature
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = localhost