/test/fixtures/keys/Makefile

https://gitlab.com/jbergstroem/node.js · Makefile · 380 lines · 248 code · 79 blank · 53 comment · 0 complexity · f086efeb284d718719857cdd832f60f1 MD5 · raw file

  1. all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem dsa1025.pem dsa_private_1025.pem dsa_public_1025.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem
  2. #
  3. # Create Certificate Authority: ca1
  4. # ('password' is used for the CA password.)
  5. #
  6. ca1-cert.pem: ca1.cnf
  7. openssl req -new -x509 -days 9999 -config ca1.cnf -keyout ca1-key.pem -out ca1-cert.pem
  8. #
  9. # Create Certificate Authority: ca2
  10. # ('password' is used for the CA password.)
  11. #
  12. ca2-cert.pem: ca2.cnf
  13. openssl req -new -x509 -days 9999 -config ca2.cnf -keyout ca2-key.pem -out ca2-cert.pem
  14. echo '01' > ca2-serial
  15. touch ca2-database.txt
  16. #
  17. # Create Subordinate Certificate Authority: ca3
  18. # ('password' is used for the CA password.)
  19. #
  20. ca3-key.pem:
  21. openssl genrsa -out ca3-key.pem 1024
  22. ca3-csr.pem: ca3.cnf ca3-key.pem
  23. openssl req -new \
  24. -extensions v3_ca \
  25. -config ca3.cnf \
  26. -key ca3-key.pem \
  27. -out ca3-csr.pem
  28. ca3-cert.pem: ca3-csr.pem ca3-key.pem ca3.cnf ca1-cert.pem ca1-key.pem
  29. openssl x509 -req \
  30. -extfile ca3.cnf \
  31. -extensions v3_ca \
  32. -days 9999 \
  33. -passin "pass:password" \
  34. -in ca3-csr.pem \
  35. -CA ca1-cert.pem \
  36. -CAkey ca1-key.pem \
  37. -CAcreateserial \
  38. -out ca3-cert.pem
  39. #
  40. # Create Fake CNNIC Root Certificate Authority: fake-cnnic-root
  41. #
  42. fake-cnnic-root-key.pem:
  43. openssl genrsa -out fake-cnnic-root-key.pem 2048
  44. fake-cnnic-root-cert.pem: fake-cnnic-root.cnf fake-cnnic-root-key.pem
  45. openssl req -x509 -new \
  46. -key fake-cnnic-root-key.pem \
  47. -days 1024 \
  48. -out fake-cnnic-root-cert.pem \
  49. -config fake-cnnic-root.cnf
  50. #
  51. # Create Fake StartCom Root Certificate Authority: fake-startcom-root
  52. #
  53. fake-startcom-root-key.pem:
  54. openssl genrsa -out fake-startcom-root-key.pem 2048
  55. fake-startcom-root-cert.pem: fake-startcom-root.cnf \
  56. fake-startcom-root-key.pem
  57. openssl req -new -x509 -days 9999 -config \
  58. fake-startcom-root.cnf -key fake-startcom-root-key.pem -out \
  59. fake-startcom-root-cert.pem
  60. echo '01' > fake-startcom-root-serial
  61. touch fake-startcom-root-database.txt
  62. #
  63. # agent1 is signed by ca1.
  64. #
  65. agent1-key.pem:
  66. openssl genrsa -out agent1-key.pem 1024
  67. agent1-csr.pem: agent1.cnf agent1-key.pem
  68. openssl req -new -config agent1.cnf -key agent1-key.pem -out agent1-csr.pem
  69. agent1-cert.pem: agent1-csr.pem ca1-cert.pem ca1-key.pem
  70. openssl x509 -req \
  71. -extfile agent1.cnf \
  72. -extensions v3_ca \
  73. -days 9999 \
  74. -passin "pass:password" \
  75. -in agent1-csr.pem \
  76. -CA ca1-cert.pem \
  77. -CAkey ca1-key.pem \
  78. -CAcreateserial \
  79. -out agent1-cert.pem
  80. agent1-pfx.pem: agent1-cert.pem agent1-key.pem ca1-cert.pem
  81. openssl pkcs12 -export \
  82. -descert \
  83. -in agent1-cert.pem \
  84. -inkey agent1-key.pem \
  85. -certfile ca1-cert.pem \
  86. -out agent1-pfx.pem \
  87. -password pass:sample
  88. agent1-verify: agent1-cert.pem ca1-cert.pem
  89. openssl verify -CAfile ca1-cert.pem agent1-cert.pem
  90. #
  91. # agent2 has a self signed cert
  92. #
  93. # Generate new private key
  94. agent2-key.pem:
  95. openssl genrsa -out agent2-key.pem 1024
  96. # Create a Certificate Signing Request for the key
  97. agent2-csr.pem: agent2-key.pem agent2.cnf
  98. openssl req -new -config agent2.cnf -key agent2-key.pem -out agent2-csr.pem
  99. # Create a Certificate for the agent.
  100. agent2-cert.pem: agent2-csr.pem agent2-key.pem
  101. openssl x509 -req \
  102. -days 9999 \
  103. -in agent2-csr.pem \
  104. -signkey agent2-key.pem \
  105. -out agent2-cert.pem
  106. agent2-verify: agent2-cert.pem
  107. openssl verify -CAfile agent2-cert.pem agent2-cert.pem
  108. #
  109. # agent3 is signed by ca2.
  110. #
  111. agent3-key.pem:
  112. openssl genrsa -out agent3-key.pem 1024
  113. agent3-csr.pem: agent3.cnf agent3-key.pem
  114. openssl req -new -config agent3.cnf -key agent3-key.pem -out agent3-csr.pem
  115. agent3-cert.pem: agent3-csr.pem ca2-cert.pem ca2-key.pem
  116. openssl x509 -req \
  117. -days 9999 \
  118. -passin "pass:password" \
  119. -in agent3-csr.pem \
  120. -CA ca2-cert.pem \
  121. -CAkey ca2-key.pem \
  122. -CAcreateserial \
  123. -out agent3-cert.pem
  124. agent3-verify: agent3-cert.pem ca2-cert.pem
  125. openssl verify -CAfile ca2-cert.pem agent3-cert.pem
  126. #
  127. # agent4 is signed by ca2 (client cert)
  128. #
  129. agent4-key.pem:
  130. openssl genrsa -out agent4-key.pem 1024
  131. agent4-csr.pem: agent4.cnf agent4-key.pem
  132. openssl req -new -config agent4.cnf -key agent4-key.pem -out agent4-csr.pem
  133. agent4-cert.pem: agent4-csr.pem ca2-cert.pem ca2-key.pem
  134. openssl x509 -req \
  135. -days 9999 \
  136. -passin "pass:password" \
  137. -in agent4-csr.pem \
  138. -CA ca2-cert.pem \
  139. -CAkey ca2-key.pem \
  140. -CAcreateserial \
  141. -extfile agent4.cnf \
  142. -extensions ext_key_usage \
  143. -out agent4-cert.pem
  144. agent4-verify: agent4-cert.pem ca2-cert.pem
  145. openssl verify -CAfile ca2-cert.pem agent4-cert.pem
  146. #
  147. # Make CRL with agent4 being rejected
  148. #
  149. ca2-crl.pem: ca2-key.pem ca2-cert.pem ca2.cnf
  150. openssl ca -revoke agent4-cert.pem \
  151. -keyfile ca2-key.pem \
  152. -cert ca2-cert.pem \
  153. -config ca2.cnf \
  154. -passin 'pass:password'
  155. openssl ca \
  156. -keyfile ca2-key.pem \
  157. -cert ca2-cert.pem \
  158. -config ca2.cnf \
  159. -gencrl \
  160. -out ca2-crl.pem \
  161. -passin 'pass:password'
  162. #
  163. # agent5 is signed by ca2 (client cert)
  164. #
  165. agent5-key.pem:
  166. openssl genrsa -out agent5-key.pem 1024
  167. agent5-csr.pem: agent5.cnf agent5-key.pem
  168. openssl req -new -config agent5.cnf -key agent5-key.pem -out agent5-csr.pem
  169. agent5-cert.pem: agent5-csr.pem ca2-cert.pem ca2-key.pem
  170. openssl x509 -req \
  171. -days 9999 \
  172. -passin "pass:password" \
  173. -in agent5-csr.pem \
  174. -CA ca2-cert.pem \
  175. -CAkey ca2-key.pem \
  176. -CAcreateserial \
  177. -extfile agent5.cnf \
  178. -extensions ext_key_usage \
  179. -out agent5-cert.pem
  180. agent5-verify: agent5-cert.pem ca2-cert.pem
  181. openssl verify -CAfile ca2-cert.pem agent5-cert.pem
  182. #
  183. # agent6 is signed by ca3
  184. #
  185. agent6-key.pem:
  186. openssl genrsa -out agent6-key.pem 1024
  187. agent6-csr.pem: agent6.cnf agent6-key.pem
  188. openssl req -new -config agent6.cnf -key agent6-key.pem -out agent6-csr.pem
  189. agent6-cert.pem: agent6-csr.pem ca3-cert.pem ca3-key.pem
  190. openssl x509 -req \
  191. -days 9999 \
  192. -passin "pass:password" \
  193. -in agent6-csr.pem \
  194. -CA ca3-cert.pem \
  195. -CAkey ca3-key.pem \
  196. -CAcreateserial \
  197. -extfile agent6.cnf \
  198. -out agent6-cert.pem
  199. cat ca3-cert.pem >> agent6-cert.pem
  200. agent6-verify: agent6-cert.pem ca3-cert.pem
  201. openssl verify -CAfile ca3-cert.pem agent6-cert.pem
  202. #
  203. # agent7 is signed by fake-cnnic-root.
  204. #
  205. agent7-key.pem:
  206. openssl genrsa -out agent7-key.pem 2048
  207. agent7-csr.pem: agent1.cnf agent7-key.pem
  208. openssl req -new -config agent7.cnf -key agent7-key.pem -out agent7-csr.pem
  209. agent7-cert.pem: agent7-csr.pem fake-cnnic-root-cert.pem fake-cnnic-root-key.pem
  210. openssl x509 -req \
  211. -extfile agent7.cnf \
  212. -days 9999 \
  213. -passin "pass:password" \
  214. -in agent7-csr.pem \
  215. -CA fake-cnnic-root-cert.pem \
  216. -CAkey fake-cnnic-root-key.pem \
  217. -CAcreateserial \
  218. -out agent7-cert.pem
  219. agent7-verify: agent7-cert.pem fake-cnnic-root-cert.pem
  220. openssl verify -CAfile fake-cnnic-root-cert.pem agent7-cert.pem
  221. #
  222. # agent8 is signed by fake-startcom-root with notBefore
  223. # of Oct 20 23:59:59 2016 GMT
  224. #
  225. agent8-key.pem:
  226. openssl genrsa -out agent8-key.pem 2048
  227. agent8-csr.pem: agent8.cnf agent8-key.pem
  228. openssl req -new -config agent8.cnf -key agent8-key.pem \
  229. -out agent8-csr.pem
  230. agent8-cert.pem: agent8-csr.pem
  231. openssl ca \
  232. -config fake-startcom-root.cnf \
  233. -keyfile fake-startcom-root-key.pem \
  234. -cert fake-startcom-root-cert.pem \
  235. -batch \
  236. -days 9999 \
  237. -passin "pass:password" \
  238. -in agent8-csr.pem \
  239. -startdate 20161020235959Z \
  240. -notext -out agent8-cert.pem
  241. agent8-verify: agent8-cert.pem fake-startcom-root-cert.pem
  242. openssl verify -CAfile fake-startcom-root-cert.pem \
  243. agent8-cert.pem
  244. #
  245. # agent9 is signed by fake-startcom-root with notBefore
  246. # of Oct 21 00:00:01 2016 GMT
  247. #
  248. agent9-key.pem:
  249. openssl genrsa -out agent9-key.pem 2048
  250. agent9-csr.pem: agent9.cnf agent9-key.pem
  251. openssl req -new -config agent9.cnf -key agent9-key.pem \
  252. -out agent9-csr.pem
  253. agent9-cert.pem: agent9-csr.pem
  254. openssl ca \
  255. -config fake-startcom-root.cnf \
  256. -keyfile fake-startcom-root-key.pem \
  257. -cert fake-startcom-root-cert.pem \
  258. -batch \
  259. -days 9999 \
  260. -passin "pass:password" \
  261. -in agent9-csr.pem \
  262. -startdate 20161021000001Z \
  263. -notext -out agent9-cert.pem
  264. ec-key.pem:
  265. openssl ecparam -genkey -out ec-key.pem -name prime256v1
  266. ec-csr.pem: ec-key.pem
  267. openssl req -new -config ec.cnf -key ec-key.pem -out ec-csr.pem
  268. ec-cert.pem: ec-csr.pem ec-key.pem
  269. openssl x509 -req \
  270. -days 9999 \
  271. -in ec-csr.pem \
  272. -signkey ec-key.pem \
  273. -out ec-cert.pem
  274. dh512.pem:
  275. openssl dhparam -out dh512.pem 512
  276. dh1024.pem:
  277. openssl dhparam -out dh1024.pem 1024
  278. dh2048.pem:
  279. openssl dhparam -out dh2048.pem 2048
  280. dsa1025.pem:
  281. openssl dsaparam -out dsa1025.pem 1025
  282. dsa_private_1025.pem:
  283. openssl gendsa -out dsa_private_1025.pem dsa1025.pem
  284. dsa_public_1025.pem:
  285. openssl dsa -in dsa_private_1025.pem -pubout -out dsa_public_1025.pem
  286. rsa_private_1024.pem:
  287. openssl genrsa -out rsa_private_1024.pem 1024
  288. rsa_private_2048.pem:
  289. openssl genrsa -out rsa_private_2048.pem 2048
  290. rsa_private_4096.pem:
  291. openssl genrsa -out rsa_private_4096.pem 4096
  292. rsa_public_1024.pem: rsa_private_1024.pem
  293. openssl rsa -in rsa_private_1024.pem -out rsa_public_1024.pem
  294. rsa_public_2048.pem: rsa_private_2048.pem
  295. openssl rsa -in rsa_private_2048.pem -out rsa_public_2048.pem
  296. rsa_public_4096.pem: rsa_private_4096.pem
  297. openssl rsa -in rsa_private_4096.pem -out rsa_public_4096.pem
  298. clean:
  299. rm -f *.pem *.srl ca2-database.txt ca2-serial
  300. test: agent1-verify agent2-verify agent3-verify agent4-verify agent5-verify
  301. .PHONY: all clean test agent1-verify agent2-verify agent3-verify agent4-verify agent5-verify