Skip to content

Instantly share code, notes, and snippets.

@jaykepeters
Last active July 10, 2019 05:18
Show Gist options
  • Save jaykepeters/438da73ed019eea007d66dc93f5ed2ee to your computer and use it in GitHub Desktop.
Save jaykepeters/438da73ed019eea007d66dc93f5ed2ee to your computer and use it in GitHub Desktop.
Given the config:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/certs/server/combined.pem"
ssl.ca-file = "/certs/server/fullchain.pem"
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
ssl.honor-cipher-order = "enable"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
}
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ ".*" {
url.redirect = ("^/admin/.*" => "https://%0$0")
}
}
$HTTP["host"] =~ "google.com" {
url.redirect = ( "^/(.*)" => "https://duckduckgo.com" )
url.redirect-code = 301
}
Combined.PEM is
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA7y+kgh1LbIeGlsFBEy3Keof6sMSqU+L2evDieAFczk5FBTwj
ZSdM6A93N1VkRm6DcY37cjalNCyfKYTGzHXgiSCjLo7R6GbmqdMM+3lV0YWjfNVb
PD8J8DeO5n3rf0GTYWl9vS1QpwUd7nl3mPGre/e1MP9Gr5GqUaTE/oCbRDFHigZ1
UMezTUStjd8wRbWEkPG5YlKhZcm5GrBMxHYk3jKrAWQrzH8cj+OhBNtdSC1fU/IJ
oeLvze+vvLV/7sOtAWBqdIqi1qY9cGPxdHjZnDDtDH8pKdZPe8UVNJxnNxe+PDp1
lbgU28lg9J3HNKoaMN3fpazNxwZQP247a6GH1QIDAQABAoIBAQDdd5WxTIKr6Qj7
ydEBeyLCNeovhsnXho2G5EgtqcVO2TYbVMXJQYx6Suet+okwld9rY3XxGRv6pV5y
SRjx9CuFjQzLbT57G9x0XpDkwEJwEHeCfONPc2c2X5sXXHyThhp61fyxD6ZgH+LJ
DvtoSEzqKkBBL/05T30Ov6wPovEhP11vKiW/kkojrQwy86hhZ+gmKC+HqQgKb8yO
zLk6m/hDhAiXldPa5mOPdqviipDgo7N68vQavBYPiIpLyIGSHtZdtOAFkRnR13aJ
sdTHoyWhPK8hRbdA/YX9U8GD1+HbGb551HiBSHmAlWtl2v5NjlYKAD2tG53KDeSR
nvSwe+VBAoGBAP9fyL/aekbn7QQPinyXIOLWOYsumzRacrIloQGRcA9r+GB873gk
PHLxlUb+gIG2C4DVd+WIiFnhFSpbyJ0TtjDGw1Xz0bRgmNPyMCANtJtBWzQyoyGa
NFH8Aa/50aeiZ41HQHWA3YyfqsjG/z2DdrEbKN318MSogmn9pGoLV6O9AoGBAO/F
s9IOyJGjicOZUHpAmPZH01muRI037IrqhkC/hvY4sQ5NFEonEML9h6cpwadA8ebe
ovtulFp1tu7CvtiIt/HPh2n2sr2ygEtkTEas7JGyt8AzQB7alERPkdsRhu35XYXq
SnD71SD/mjYWdPdKxItdWRuEJCzNbtHzPOcwcin5AoGAKwvTQ/uo1uDrQ972wg+b
fIENzBc8FDQW106eeCwyznattF36465//gQY3JGzyamNANd60VcVXMkjDzPPeiLD
eC9Y59kkhRovSLKvSAfnZLA8lmzesKBUp2kqQ6aBn5cxi0/yXpwtPDIB0LwydAT/
8dSZK+jz/8JD0Wfu2e01haUCgYBKKq1k3I3N/vguOM5cAn9OLwmBRBaQWCwjDEha
3uOwZfjeo5kTFuJobmP3oUL1qXEqKNPhUmMxWBgt4q+F60R61+bbMCQ56W0l5PBz
LCpBJzcPjMrYwGP8fWBwkwtZsTjso3xDVqKmgmoBMREdLVN+iHF3wXgvI5yT9Nlx
6dpmgQKBgDY0O/i+aQ7htuQqTAyyRMeqKjr89RqDS7GVp7wHpPViN4fyCQvU51Ew
VewXrPysgrsgQV2HUJHJ1v0Mv++y1Y8vQfJewpltKf5LmEIZBtH/ZORKi+MMCOgi
LGk9yeVdX0HQAfCCUWy2WgsuRf7GLGL0zb0Ksp8JbWRoSmneJwbc
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDRzCCAi8CCQCRyWaUlkLPpTANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJV
UzENMAsGA1UECAwEVXRhaDEOMAwGA1UEBwwFUHJvdm8xIzAhBgNVBAoMGkFDTUUg
U2lnbmluZyBBdXRob3JpdHkgSW5jMRQwEgYDVQQDDAtleGFtcGxlLmNvbTAeFw0x
OTA3MTAwNDQwNDhaFw0yMDExMjEwNDQwNDhaMGQxCzAJBgNVBAYTAlVTMRIwEAYD
VQQIDAlNaW5uZXNvdGExEDAOBgNVBAcMB1NhcnRlbGwxEzARBgNVBAoMCkJsdWVK
YXkgSVQxGjAYBgNVBAMMEXRqai5ibHVlamF5aXQuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA7y+kgh1LbIeGlsFBEy3Keof6sMSqU+L2evDieAFc
zk5FBTwjZSdM6A93N1VkRm6DcY37cjalNCyfKYTGzHXgiSCjLo7R6GbmqdMM+3lV
0YWjfNVbPD8J8DeO5n3rf0GTYWl9vS1QpwUd7nl3mPGre/e1MP9Gr5GqUaTE/oCb
RDFHigZ1UMezTUStjd8wRbWEkPG5YlKhZcm5GrBMxHYk3jKrAWQrzH8cj+OhBNtd
SC1fU/IJoeLvze+vvLV/7sOtAWBqdIqi1qY9cGPxdHjZnDDtDH8pKdZPe8UVNJxn
Nxe+PDp1lbgU28lg9J3HNKoaMN3fpazNxwZQP247a6GH1QIDAQABMA0GCSqGSIb3
DQEBCwUAA4IBAQCCaywh8Ni4+gTc3VmKZyWClIkfCiazKldJBn5+SL7lV+fPpATv
PjuT9d3JMoyKQAIW5cEI3ZU/l5wZc9gGrnF/KwmfSRDQzPsAHm1NvRl82m+9m/ox
r3tFgfvkBZLhZmVHBJRsjQkAGJ2Xlt4RL/IJ+Pux6PNEr73aolXILhshISEgu29+
mhAf6+N0HiWslpep+wxszIsBPIm/bku5x2Q6myITt/uwrLo7Dku30p0Zc2W2FEES
VolHkrrXUKnCZgbGB36VGzCtz4eV+dOTCvsb3pN0bAlFdyIoYPYVD2k1dZqGrGgv
P1t48zj9OiP/VFjt8nns6KnFnw113eeMBwrn
-----END CERTIFICATE-----
Fullchain.PEM is
-----BEGIN CERTIFICATE-----
MIIDRzCCAi8CCQCRyWaUlkLPpTANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJV
UzENMAsGA1UECAwEVXRhaDEOMAwGA1UEBwwFUHJvdm8xIzAhBgNVBAoMGkFDTUUg
U2lnbmluZyBBdXRob3JpdHkgSW5jMRQwEgYDVQQDDAtleGFtcGxlLmNvbTAeFw0x
OTA3MTAwNDQwNDhaFw0yMDExMjEwNDQwNDhaMGQxCzAJBgNVBAYTAlVTMRIwEAYD
VQQIDAlNaW5uZXNvdGExEDAOBgNVBAcMB1NhcnRlbGwxEzARBgNVBAoMCkJsdWVK
YXkgSVQxGjAYBgNVBAMMEXRqai5ibHVlamF5aXQuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA7y+kgh1LbIeGlsFBEy3Keof6sMSqU+L2evDieAFc
zk5FBTwjZSdM6A93N1VkRm6DcY37cjalNCyfKYTGzHXgiSCjLo7R6GbmqdMM+3lV
0YWjfNVbPD8J8DeO5n3rf0GTYWl9vS1QpwUd7nl3mPGre/e1MP9Gr5GqUaTE/oCb
RDFHigZ1UMezTUStjd8wRbWEkPG5YlKhZcm5GrBMxHYk3jKrAWQrzH8cj+OhBNtd
SC1fU/IJoeLvze+vvLV/7sOtAWBqdIqi1qY9cGPxdHjZnDDtDH8pKdZPe8UVNJxn
Nxe+PDp1lbgU28lg9J3HNKoaMN3fpazNxwZQP247a6GH1QIDAQABMA0GCSqGSIb3
DQEBCwUAA4IBAQCCaywh8Ni4+gTc3VmKZyWClIkfCiazKldJBn5+SL7lV+fPpATv
PjuT9d3JMoyKQAIW5cEI3ZU/l5wZc9gGrnF/KwmfSRDQzPsAHm1NvRl82m+9m/ox
r3tFgfvkBZLhZmVHBJRsjQkAGJ2Xlt4RL/IJ+Pux6PNEr73aolXILhshISEgu29+
mhAf6+N0HiWslpep+wxszIsBPIm/bku5x2Q6myITt/uwrLo7Dku30p0Zc2W2FEES
VolHkrrXUKnCZgbGB36VGzCtz4eV+dOTCvsb3pN0bAlFdyIoYPYVD2k1dZqGrGgv
P1t48zj9OiP/VFjt8nns6KnFnw113eeMBwrn
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDpDCCAoygAwIBAgIJAOtzLnyf7TDkMA0GCSqGSIb3DQEBCwUAMGcxCzAJBgNV
BAYTAlVTMQ0wCwYDVQQIDARVdGFoMQ4wDAYDVQQHDAVQcm92bzEjMCEGA1UECgwa
QUNNRSBTaWduaW5nIEF1dGhvcml0eSBJbmMxFDASBgNVBAMMC2V4YW1wbGUuY29t
MB4XDTE5MDcxMDA0NDA0MloXDTIyMDQyOTA0NDA0MlowZzELMAkGA1UEBhMCVVMx
DTALBgNVBAgMBFV0YWgxDjAMBgNVBAcMBVByb3ZvMSMwIQYDVQQKDBpBQ01FIFNp
Z25pbmcgQXV0aG9yaXR5IEluYzEUMBIGA1UEAwwLZXhhbXBsZS5jb20wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDeBZvXJ3Wa5RWQ2XIuMI76BgYICUrW
ZHFxWee5BgSRmCqEvXz8dE7JEMLh9yvMJQHjAZJihBGPOYuKt0A1DsVK2APwAFKC
6GvBqxWkr8seE54ce/z7B7BsIpgbcNQlEzfV02CxrJxAc1BOaFZw3vUdxvxWgwPH
BlVUandtiyTNSLbNA7wB7hKEKaaPScMNl8jEOc32AAd5S3cJSjzl9Qty7ovnn4eh
3IQ+e1sVlVStG5/gCvswruuTphWfUyJKGS510tQWU1SVRPKpXBLiKnWo4f13WvaV
AfjEa9lrhT1nKzZ9vhwA3lNuiOXv3arbs+Ixhahge16kLYsV9JwK63k/AgMBAAGj
UzBRMB0GA1UdDgQWBBR11ufGDavW7ATQxuigAU03AcpiPTAfBgNVHSMEGDAWgBR1
1ufGDavW7ATQxuigAU03AcpiPTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
CwUAA4IBAQAzDl5UXr/+giKSl5IFFR8R1wh1zX+XKLQ6DJGaly9r1bmbozEbH53J
kgx0zpZACQqkWxEsGy3XSS/cQG9bz0QL1XHFQzPY2/aome6VWGFnrIagnGT3++yt
cxetceFsBeF9dJRprYf1U146OfDs1E1nfMUoAHlm3nRZ1R+UW9ZjkF27k5IGXfmb
H3ZLbG+l0mJTUi9j7DNmjhxSND1X4c6zfettNHhjoJvxnVFylh2spee7tBNs8MxB
vkpLG+xX0C91o59SvFovOndgWvRl7SH+G/4RQ2YLIcHOLNalTWvxj9lmJQ/0NzJV
/p23r+KbG5uxPrUkfIL2d6ZxkdfZhH38
-----END CERTIFICATE-----
** MIIDpD Is the Root CA certificate. The others are private keys and the server's certificate....
Combined.PEM is in this order:
1. Private Key
2. Certificate
So Fullchain.PEM is in this order:
1. Server Cert
2. Root Cert
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment