mk-ocsp-cert-chain.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/bin/sh
  2. opensslcmd() {
  3. LD_LIBRARY_PATH=../.. ../../apps/openssl $@
  4. }
  5. # report the openssl version
  6. opensslcmd version
  7. echo "Creating private keys and certs..."
  8. #####
  9. # root CA private key
  10. opensslcmd genpkey \
  11. -algorithm EC \
  12. -pkeyopt ec_paramgen_curve:secp521r1 \
  13. -pkeyopt ec_param_enc:named_curve \
  14. -out root-key.pem
  15. # root CA certificate (self-signed)
  16. opensslcmd req \
  17. -config ca.cnf \
  18. -x509 \
  19. -days 3650 \
  20. -key root-key.pem \
  21. -subj /CN=TestRootCA \
  22. -out root-cert.pem
  23. #####
  24. # intermediate CA private key
  25. opensslcmd genpkey \
  26. -algorithm EC \
  27. -pkeyopt ec_paramgen_curve:secp384r1 \
  28. -pkeyopt ec_param_enc:named_curve \
  29. -out intermediate-key.pem
  30. # intermediate CA certificate-signing-request
  31. opensslcmd req \
  32. -config ca.cnf \
  33. -new \
  34. -key intermediate-key.pem \
  35. -subj /CN=TestIntermediateCA \
  36. -out intermediate-csr.pem
  37. # intermediate CA certificate (signed by root CA)
  38. opensslcmd req \
  39. -config ca.cnf \
  40. -x509 \
  41. -days 1825 \
  42. -CA root-cert.pem \
  43. -CAkey root-key.pem \
  44. -in intermediate-csr.pem \
  45. -copy_extensions copyall \
  46. -out intermediate-cert.pem
  47. #####
  48. # server key
  49. opensslcmd genpkey \
  50. -algorithm EC \
  51. -pkeyopt ec_paramgen_curve:prime256v1 \
  52. -pkeyopt ec_param_enc:named_curve \
  53. -out server-key.pem
  54. # server certificate-signing-request
  55. opensslcmd req \
  56. -config ca.cnf \
  57. -extensions usr_cert \
  58. -new \
  59. -key server-key.pem \
  60. -subj /CN=TestServerCA \
  61. -out server-csr.pem
  62. # server certificate (signed by intermediate CA)
  63. opensslcmd req \
  64. -config ca.cnf \
  65. -extensions usr_cert \
  66. -x509 \
  67. -days 365 \
  68. -CA intermediate-cert.pem \
  69. -CAkey intermediate-key.pem \
  70. -in server-csr.pem \
  71. -copy_extensions copyall \
  72. -out server-cert.pem
  73. #####
  74. rm -f index.txt index.txt.attr
  75. echo -n > index.txt
  76. opensslcmd ca \
  77. -config ca.cnf \
  78. -valid server-cert.pem \
  79. -keyfile intermediate-key.pem \
  80. -cert intermediate-cert.pem
  81. rm -f index.txt.old
  82. #####
  83. cat server-cert.pem server-key.pem intermediate-cert.pem > server.pem
  84. cat intermediate-cert.pem intermediate-key.pem > ocsp.pem
  85. echo "Done."