add easyrsa
This commit is contained in:
parent
f203a8a1db
commit
b21a2f2a6d
13
Dockerfile
13
Dockerfile
@ -1,5 +1,3 @@
|
||||
ARG BUILD_SERVER_NAME="irc.lame-network.local"
|
||||
|
||||
ARG UBUNTU_VERSION="noble"
|
||||
|
||||
FROM ubuntu:${UBUNTU_VERSION}
|
||||
@ -480,19 +478,10 @@ RUN touch /etc/inspircd/oper.motd.txt
|
||||
|
||||
ADD GeoLite2-Country.mmdb /etc/inspircd
|
||||
|
||||
RUN openssl genrsa -out /etc/ssl/inspircd/server.key
|
||||
|
||||
RUN openssl req -new -key /etc/ssl/inspircd/server.key -out /etc/ssl/inspircd/server.csr \
|
||||
-subj "/C=US/ST=Washington/L=Seattle/O=LameNetwork/OU=IT Department/CN=$BUILD_SERVER_NAME"
|
||||
|
||||
RUN openssl x509 -req -days 365 -in /etc/ssl/inspircd/server.csr -signkey /etc/ssl/inspircd/server.key -out /etc/ssl/inspircd/server.crt
|
||||
|
||||
RUN chown -R inspircd:inspircd /etc/inspircd /etc/ssl/inspircd /var/lib/inspircd /var/log/inspircd
|
||||
RUN chown -R inspircd:inspircd /etc/inspircd /var/lib/inspircd /var/log/inspircd
|
||||
|
||||
VOLUME /etc/inspircd/custom
|
||||
|
||||
VOLUME /etc/ssl/inspircd
|
||||
|
||||
VOLUME /var/lib/inspircd
|
||||
|
||||
VOLUME /var/log/inspircd
|
||||
|
3
custom/.gitignore
vendored
3
custom/.gitignore
vendored
@ -3,5 +3,6 @@ oper.motd.txt
|
||||
include.conf
|
||||
*.crt
|
||||
*.key
|
||||
dh.pem
|
||||
*.pem
|
||||
!ca.crt
|
||||
!crl.pem
|
||||
|
@ -2,20 +2,15 @@ services:
|
||||
ircd:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
BUILD_SERVER_NAME: ${SERVER_NAME}
|
||||
image: inspi4
|
||||
network_mode: "host"
|
||||
env_file: "config.env"
|
||||
volumes:
|
||||
- ./custom:/etc/inspircd/custom:ro
|
||||
- ssl:/etc/ssl/inspircd
|
||||
- data:/var/lib/inspircd
|
||||
- log:/var/log/inspircd
|
||||
volumes:
|
||||
data:
|
||||
name: inspi4_data
|
||||
ssl:
|
||||
name: inspi4_ssl
|
||||
log:
|
||||
name: inspi4_log
|
||||
|
1
easyrsa3/.gitignore
vendored
Normal file
1
easyrsa3/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
pki/
|
6131
easyrsa3/easyrsa
Executable file
6131
easyrsa3/easyrsa
Executable file
File diff suppressed because it is too large
Load Diff
149
easyrsa3/openssl-easyrsa.cnf
Normal file
149
easyrsa3/openssl-easyrsa.cnf
Normal file
@ -0,0 +1,149 @@
|
||||
# For use with Easy-RSA 3.0+ and OpenSSL or LibreSSL
|
||||
|
||||
####################################################################
|
||||
[ ca ]
|
||||
default_ca = CA_default # The default ca section
|
||||
|
||||
####################################################################
|
||||
[ CA_default ]
|
||||
|
||||
dir = $ENV::EASYRSA_PKI # Where everything is kept
|
||||
certs = $dir # Where the issued certs are kept
|
||||
crl_dir = $dir # Where the issued crl are kept
|
||||
database = $dir/index.txt # database index file.
|
||||
new_certs_dir = $dir/certs_by_serial # default place for new certs.
|
||||
|
||||
certificate = $dir/ca.crt # The CA certificate
|
||||
serial = $dir/serial # The current serial number
|
||||
crl = $dir/crl.pem # The current CRL
|
||||
private_key = $dir/private/ca.key # The private key
|
||||
RANDFILE = $dir/.rand # private random number file
|
||||
|
||||
x509_extensions = basic_exts # The extensions to add to the cert
|
||||
|
||||
# A placeholder to handle the --copy-ext feature:
|
||||
#%COPY_EXTS% # Do NOT remove or change this line as --copy-ext support requires it
|
||||
|
||||
# This allows a V2 CRL. Ancient browsers don't like it, but anything Easy-RSA
|
||||
# is designed for will. In return, we get the Issuer attached to CRLs.
|
||||
crl_extensions = crl_ext
|
||||
|
||||
default_days = $ENV::EASYRSA_CERT_EXPIRE # how long to certify for
|
||||
default_crl_days = $ENV::EASYRSA_CRL_DAYS # how long before next CRL
|
||||
default_md = $ENV::EASYRSA_DIGEST # use public key default MD
|
||||
|
||||
# Note: preserve=no|yes, does nothing for EasyRSA.
|
||||
# Use sign-req command option 'preserve' instead.
|
||||
preserve = no # keep passed DN ordering
|
||||
|
||||
# This allows to renew certificates which have not been revoked
|
||||
unique_subject = no
|
||||
|
||||
# A few different ways of specifying how similar the request should look
|
||||
# For type CA, the listed attributes must be the same, and the optional
|
||||
# and supplied fields are just that :-)
|
||||
policy = policy_anything
|
||||
|
||||
# For the 'anything' policy, which defines allowed DN fields
|
||||
[ policy_anything ]
|
||||
countryName = optional
|
||||
stateOrProvinceName = optional
|
||||
localityName = optional
|
||||
organizationName = optional
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
serialNumber = optional
|
||||
|
||||
####################################################################
|
||||
# Easy-RSA request handling
|
||||
# We key off $DN_MODE to determine how to format the DN
|
||||
[ req ]
|
||||
default_bits = $ENV::EASYRSA_KEY_SIZE
|
||||
default_keyfile = privkey.pem
|
||||
default_md = $ENV::EASYRSA_DIGEST
|
||||
distinguished_name = $ENV::EASYRSA_DN
|
||||
x509_extensions = easyrsa_ca # The extensions to add to the self signed cert
|
||||
|
||||
# A placeholder to handle the $EXTRA_EXTS feature:
|
||||
#%EXTRA_EXTS% # Do NOT remove or change this line as $EXTRA_EXTS support requires it
|
||||
|
||||
####################################################################
|
||||
# Easy-RSA DN (Subject) handling
|
||||
|
||||
# Easy-RSA DN for cn_only support:
|
||||
[ cn_only ]
|
||||
commonName = Common Name (eg: your user, host, or server name)
|
||||
commonName_max = 64
|
||||
commonName_default = $ENV::EASYRSA_REQ_CN
|
||||
|
||||
# Easy-RSA DN for org support:
|
||||
[ org ]
|
||||
countryName = Country Name (2 letter code)
|
||||
countryName_default = $ENV::EASYRSA_REQ_COUNTRY
|
||||
countryName_min = 2
|
||||
countryName_max = 2
|
||||
|
||||
stateOrProvinceName = State or Province Name (full name)
|
||||
stateOrProvinceName_default = $ENV::EASYRSA_REQ_PROVINCE
|
||||
|
||||
localityName = Locality Name (eg, city)
|
||||
localityName_default = $ENV::EASYRSA_REQ_CITY
|
||||
|
||||
0.organizationName = Organization Name (eg, company)
|
||||
0.organizationName_default = $ENV::EASYRSA_REQ_ORG
|
||||
|
||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||
organizationalUnitName_default = $ENV::EASYRSA_REQ_OU
|
||||
|
||||
commonName = Common Name (eg: your user, host, or server name)
|
||||
commonName_max = 64
|
||||
commonName_default = $ENV::EASYRSA_REQ_CN
|
||||
|
||||
emailAddress = Email Address
|
||||
emailAddress_default = $ENV::EASYRSA_REQ_EMAIL
|
||||
emailAddress_max = 64
|
||||
|
||||
serialNumber = Serial-number (eg, device serial-number)
|
||||
serialNumber_default = $ENV::EASYRSA_REQ_SERIAL
|
||||
|
||||
####################################################################
|
||||
# Easy-RSA cert extension handling
|
||||
|
||||
# This section is effectively unused as the main script sets extensions
|
||||
# dynamically. This core section is left to support the odd usecase where
|
||||
# a user calls openssl directly.
|
||||
[ basic_exts ]
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
|
||||
# The Easy-RSA CA extensions
|
||||
[ easyrsa_ca ]
|
||||
|
||||
# PKIX recommendations:
|
||||
|
||||
subjectKeyIdentifier=hash
|
||||
authorityKeyIdentifier=keyid:always,issuer:always
|
||||
|
||||
# This could be marked critical, but it's nice to support reading by any
|
||||
# broken clients who attempt to do so.
|
||||
basicConstraints = CA:true
|
||||
|
||||
# Limit key usage to CA tasks. If you really want to use the generated pair as
|
||||
# a self-signed cert, comment this out.
|
||||
keyUsage = cRLSign, keyCertSign
|
||||
|
||||
# nsCertType omitted by default. Let's try to let the deprecated stuff die.
|
||||
# nsCertType = sslCA
|
||||
|
||||
# A placeholder to handle the $X509_TYPES and CA extra extensions $EXTRA_EXTS:
|
||||
#%CA_X509_TYPES_EXTRA_EXTS% # Do NOT remove or change this line as $X509_TYPES and EXTRA_EXTS demands it
|
||||
|
||||
# CRL extensions.
|
||||
[ crl_ext ]
|
||||
|
||||
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
|
||||
|
||||
# issuerAltName=issuer:copy
|
||||
authorityKeyIdentifier=keyid:always,issuer:always
|
15
easyrsa3/vars
Normal file
15
easyrsa3/vars
Normal file
@ -0,0 +1,15 @@
|
||||
set_var EASYRSA_DN "org"
|
||||
set_var EASYRSA_REQ_COUNTRY "US"
|
||||
set_var EASYRSA_REQ_PROVINCE "California"
|
||||
set_var EASYRSA_REQ_CITY "San Francisco"
|
||||
set_var EASYRSA_REQ_ORG "SuperNETs"
|
||||
set_var EASYRSA_REQ_EMAIL "no-reply@supernets.org"
|
||||
set_var EASYRSA_REQ_OU "IRC"
|
||||
set_var EASYRSA_PRESERVE_DN 1
|
||||
set_var EASYRSA_NO_PASS 1
|
||||
set_var EASYRSA_KEY_SIZE 4096
|
||||
set_var EASYRSA_ALGO rsa
|
||||
set_var EASYRSA_CA_EXPIRE 3650
|
||||
set_var EASYRSA_CERT_EXPIRE 3650
|
||||
set_var EASYRSA_CRL_DAYS 180
|
||||
set_var EASYRSA_RAND_SN "yes"
|
12
easyrsa3/x509-types/COMMON
Normal file
12
easyrsa3/x509-types/COMMON
Normal file
@ -0,0 +1,12 @@
|
||||
# X509 extensions added to every signed cert
|
||||
|
||||
# This file is included for every cert signed, and by default does nothing.
|
||||
# It could be used to add values every cert should have, such as a CDP as
|
||||
# demonstrated in the following example:
|
||||
|
||||
#crlDistributionPoints = URI:http://example.net/pki/my_ca.crl
|
||||
|
||||
# The authority information access extension gives details about how to access
|
||||
# certain information relating to the CA.
|
||||
|
||||
#authorityInfoAccess = caIssuers;URI:http://example.net/pki/my_ca.crt
|
12
easyrsa3/x509-types/ca
Normal file
12
easyrsa3/x509-types/ca
Normal file
@ -0,0 +1,12 @@
|
||||
# X509 extensions for a ca
|
||||
|
||||
# Note that basicConstraints will be overridden by Easy-RSA when defining a
|
||||
# CA_PATH_LEN for CA path length limits. You could also do this here
|
||||
# manually as in the following example in place of the existing line:
|
||||
#
|
||||
# basicConstraints = CA:TRUE, pathlen:1
|
||||
|
||||
basicConstraints = CA:TRUE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid:always,issuer:always
|
||||
keyUsage = cRLSign, keyCertSign
|
7
easyrsa3/x509-types/client
Normal file
7
easyrsa3/x509-types/client
Normal file
@ -0,0 +1,7 @@
|
||||
# X509 extensions for a client
|
||||
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
extendedKeyUsage = clientAuth
|
||||
keyUsage = digitalSignature
|
7
easyrsa3/x509-types/code-signing
Normal file
7
easyrsa3/x509-types/code-signing
Normal file
@ -0,0 +1,7 @@
|
||||
# X509 extensions for a client
|
||||
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
extendedKeyUsage = codeSigning
|
||||
keyUsage = digitalSignature
|
7
easyrsa3/x509-types/email
Normal file
7
easyrsa3/x509-types/email
Normal file
@ -0,0 +1,7 @@
|
||||
# X509 extensions for email
|
||||
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
extendedKeyUsage = emailProtection
|
||||
keyUsage = digitalSignature,keyEncipherment,nonRepudiation
|
21
easyrsa3/x509-types/kdc
Normal file
21
easyrsa3/x509-types/kdc
Normal file
@ -0,0 +1,21 @@
|
||||
# X509 extensions for a KDC server certificate
|
||||
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
extendedKeyUsage = 1.3.6.1.5.2.3.5
|
||||
keyUsage = nonRepudiation,digitalSignature,keyEncipherment,keyAgreement
|
||||
issuerAltName = issuer:copy
|
||||
subjectAltName = otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name
|
||||
|
||||
[kdc_princ_name]
|
||||
realm = EXP:0,GeneralString:${ENV::EASYRSA_KDC_REALM}
|
||||
principal_name = EXP:1,SEQUENCE:kdc_principal_seq
|
||||
|
||||
[kdc_principal_seq]
|
||||
name_type = EXP:0,INTEGER:1
|
||||
name_string = EXP:1,SEQUENCE:kdc_principals
|
||||
|
||||
[kdc_principals]
|
||||
princ1 = GeneralString:krbtgt
|
||||
princ2 = GeneralString:${ENV::EASYRSA_KDC_REALM}
|
7
easyrsa3/x509-types/server
Normal file
7
easyrsa3/x509-types/server
Normal file
@ -0,0 +1,7 @@
|
||||
# X509 extensions for a server
|
||||
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
extendedKeyUsage = serverAuth
|
||||
keyUsage = digitalSignature,keyEncipherment
|
7
easyrsa3/x509-types/serverClient
Normal file
7
easyrsa3/x509-types/serverClient
Normal file
@ -0,0 +1,7 @@
|
||||
# X509 extensions for a client/server
|
||||
|
||||
basicConstraints = CA:FALSE
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid,issuer:always
|
||||
extendedKeyUsage = serverAuth,clientAuth
|
||||
keyUsage = digitalSignature,keyEncipherment
|
Loading…
Reference in New Issue
Block a user