#!/bin/bash

mkdir -p pki

# Generate Root Certificate and Key
openssl req -newkey rsa:2048 -nodes -keyout pki/ca.key -x509 -days 3650 -out pki/ca.cer -subj "/C=JP/ST=A/L=A/CN=Taito Arcade Machine CA"
#    -addext "subjectAltName = DNS:cert.nesys.jp,DNS:cert3.nesys.jp,DNS:data.nesys.jp,DNS:proxy.nesys.jp,DNS:nesys.taito.co.jp,DNS:fjm170920zero.nesica.net"

# Generate Nesys CSR and key
openssl req -newkey rsa:2048 -nodes -keyout pki/nesys.key -out pki/nesys.csr -subj "/C=JP/ST=A/L=A/CN=nesys" 
#-addext "subjectAltName = DNS:cert.nesys.jp,DNS:cert3.nesys.jp,DNS:data.nesys.jp,DNS:proxy.nesys.jp,DNS:nesys.taito.co.jp,DNS:fjm170920zero.nesica.net"

# Generate Nesys cert
openssl x509 -req -sha256 -days 3650 -in pki/nesys.csr -CA pki/ca.cer -CAkey pki/ca.key -out pki/nesys.cer -set_serial 0

# Generate client CSR and key
openssl req -newkey rsa:2048 -nodes -keyout pki/client.key -out pki/client.csr -subj "/C=JP/ST=A/L=A/CN=PREMIUM" 
#-addext "subjectAltName = DNS:cert.nesys.jp,DNS:cert3.nesys.jp,DNS:data.nesys.jp,DNS:proxy.nesys.jp,DNS:nesys.taito.co.jp,DNS:fjm170920zero.nesica.net"

# Generate client cert
openssl x509 -req -sha256 -days 3650 -in pki/client.csr -CA pki/nesys.cer -CAkey pki/nesys.key -out pki/client.cer -set_serial 0

# Package as a p12 file
openssl pkcs12 -export -out pki/client.p12 -inkey pki/client.key -in pki/client.cer

# Generate GC client certs
openssl req -newkey rsa:2048 -nodes -keyout pki/client_gc.key -out pki/client_gc.csr -subj "/C=JP/ST=A/L=A/CN=PREMIUM"
openssl x509 -req -sha256 -days 3650 -in pki/client_gc.csr -CA pki/ca.cer -CAkey pki/ca.key -out pki/client_gc.cer -set_serial 0
openssl pkcs12 -export -out pki/client_gc.p12 -inkey pki/client_gc.key -in pki/client_gc.cer

rm pki/*.csr