From af1b448ab0dcb24ce608075a3495534252903810 Mon Sep 17 00:00:00 2001 From: Andrew Ayer Date: Thu, 4 Jun 2015 16:18:38 -0700 Subject: [PATCH] Add expired-ocsp.badssl.com subdomain This subdomain sends an expired stapled OCSP response, which triggers an SSL error in Firefox (and soon in Chrome as well). The OCSP response, certs/wildcard.expired-ocsp.der, was generated by running: openssl ocsp -issuer certs/wildcard.issuer.pem -cert certs/wildcard.normal.pem -url http://ocsp.comodoca.com -noverify -respout certs/wildcard.expired-ocsp.der where certs/wildcard.issuer.pem contains the certificate that issued certs/wildcard.normal.pem (i.e. the first intermediate certificate in the chain). http://ocsp.comodoca.com was taken from the OCSP field as output by `openssl x509 -in certs/wildcard.normal.pem -noout -text`. certs/wildcard.expired-ocsp.der will need to be regenerated whenever wildcard.normal.pem is reissued. Note that, at the time of this commit, certs/wildcard.expired-ocsp.der is not yet expired, but will expire on Jun 8, 2015 at 09:38:45 UTC. --- certs/cert-generator/cert-generator.sh | 24 +++++++++++ certs/self-signed/wildcard.expired-ocsp.der | Bin 0 -> 2513 bytes certs/wildcard.expired-ocsp.der | Bin 0 -> 471 bytes domains/misc/badssl.com/index.html | 1 + domains/misc/expired-ocsp.badssl.com.conf | 20 +++++++++ .../misc/expired-ocsp.badssl.com/index.html | 40 ++++++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 certs/self-signed/wildcard.expired-ocsp.der create mode 100644 certs/wildcard.expired-ocsp.der create mode 100644 domains/misc/expired-ocsp.badssl.com.conf create mode 100644 domains/misc/expired-ocsp.badssl.com/index.html diff --git a/certs/cert-generator/cert-generator.sh b/certs/cert-generator/cert-generator.sh index e351dfd9..4bfd2222 100755 --- a/certs/cert-generator/cert-generator.sh +++ b/certs/cert-generator/cert-generator.sh @@ -53,12 +53,30 @@ openssl x509 -req -days 730 -sha256 -CAcreateserial \ -in badssl-wildcard.csr \ -CA ../self-signed/badssl-intermediate.pem \ -CAkey ../self-signed/badssl-intermediate.key \ + -set_serial 01 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem cat out.pem ../self-signed/badssl-intermediate.pem ../self-signed/badssl-root.pem > ../self-signed/wildcard.normal.pem echo +echo "Generating expired OCSP response for BadSSL Default Certificate" +printf "V\t\t\t01\t\t\n" > index.txt # 01 must match serial # of cert, as passed to -set_serial above +echo "unique_subject = no" > index.txt.attr +openssl ocsp \ + -index index.txt \ + -rsigner ../self-signed/badssl-intermediate.pem \ + -rkey ../self-signed/badssl-intermediate.key \ + -CA ../self-signed/badssl-intermediate.pem \ + -issuer ../self-signed/badssl-intermediate.pem \ + -CAfile ../self-signed/badssl-root.pem \ + -serial 01 \ + -nmin 1 \ + -nrequest 1 \ + -respout ../self-signed/wildcard.expired-ocsp.der +rm index.txt index.txt.attr +echo + echo "Generating incomplete certificate chain" cp out.pem ../self-signed/wildcard.incomplete-chain.pem rm out.pem @@ -69,6 +87,7 @@ openssl x509 -req -days $du2016 -sha1 -CAcreateserial \ -in badssl-wildcard.csr \ -CA ../self-signed/badssl-intermediate.pem \ -CAkey ../self-signed/badssl-intermediate.key \ + -set_serial 02 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem @@ -81,6 +100,7 @@ openssl x509 -req -days $du2017 -sha1 -CAcreateserial \ -in badssl-wildcard.csr \ -CA ../self-signed/badssl-intermediate.pem \ -CAkey ../self-signed/badssl-intermediate.key \ + -set_serial 03 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem @@ -96,6 +116,7 @@ if [ ! -f ../self-signed/wildcard.expired.pem ] -in badssl-wildcard.csr \ -CA ../self-signed/badssl-intermediate.pem \ -CAkey ../self-signed/badssl-intermediate.key \ + -set_serial 04 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem @@ -110,6 +131,7 @@ echo "Self-signing BadSSL SHA-256 Certificate" openssl x509 -req -days 730 -sha256 -CAcreateserial \ -in badssl-wildcard.csr \ -signkey ../self-signed/badssl.com.key \ + -set_serial 05 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem @@ -136,6 +158,7 @@ openssl x509 -req -days 730 -sha256 -CAcreateserial \ -in rsa512.badssl-wildcard.csr \ -CA ../self-signed/badssl-intermediate.pem \ -CAkey ../self-signed/badssl-intermediate.key \ + -set_serial 06 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem @@ -160,6 +183,7 @@ openssl x509 -req -days 730 -sha256 -CAcreateserial \ -in rsa1024.badssl-wildcard.csr \ -CA ../self-signed/badssl-intermediate.pem \ -CAkey ../self-signed/badssl-intermediate.key \ + -set_serial 07 \ -extfile badssl-wildcard.conf \ -extensions req_v3_usr \ -out out.pem diff --git a/certs/self-signed/wildcard.expired-ocsp.der b/certs/self-signed/wildcard.expired-ocsp.der new file mode 100644 index 0000000000000000000000000000000000000000..4f4a977c59a20caaae982a15d0473c6101c7254d GIT binary patch literal 2513 zcmc(gc{J4PAIE1iW@3=Bq{WD8kmWm=LD^-AlQwKzT=h{cHkNI29L21i3&opESj=XQWV z@316NNWnCED2a%Z17x;EQ8db#7^-AVCx!-)7y&e#B!Jr1cc9@G#6V}~6F40J*cPB@ zwLb)<A5KBQT z_DBZ`%S5Ut*(R-`z``zqpezU&1n#2RD}2y8vN-|C;PGQ|ZwxA=>q0Ia8nb#R2kt>6 zckWtbtosd19>W^ZNX52AX4tRCQY-h`_?p>WxB>@0GZyz|snZO8+PCC-i49iyl>ROa zsw!$|W+o^nqcr>c~QFhxSp1Q@1!4J_21pv=3Ymf-pH1)zQs=Y&3@G@ zPqNskAgfiOc`&^}iu0q8apqi5{zd~=6=SDdVK@fy!5HKMg^i!AfFV`*og0bN} zr|tAeVHy^%BzB^z10IZE)^4B8sg)@)CKN@4X51EV>#v4eJ$~KnZQ%{(nrFvngR8x5j+9{ikq)t^b?@PySW@Gyek>QwJrZyq6-SxxnChxMWt~s&aa6{6 zG(g2~I&ON_Ntyv?AP5Q9`O|20|CKZv#)84_JgLL9K_7gXKkT6$)|ZpL;hQvKA^XV; zYp6Rsy(Z8qST~89EY)spIX-s-)#bP+4($)gyst_*b}f2BTRZ)^k2djr%9BE=$1kZb zZ#fuMyS%&VXBr^LA%>w@pm?TK3?|^KR zR_Adcn_Ny^lFmBe6@TW3&+D2+ZtkmQ<)q6IJcRMEh~&zELo>$wu;ztzM40C}tq1!) ztuJ#Tn332gOmqCe%`QE4YbOhIb+V(0t3O#ENKVO}m()&Ll-ox4q2KEj=dM@zI&Kk(k=kMrGz^waGF_u!~Y;c zd~Maso_!R~=PKl%pNUHw=b6uqz0aPlO?r@bmwOUK@p9vVaKXKn{7O`ujal$z(zOh? zoIq$BXY$%z_NMCVvOJac>0#~=c=aQ0VGp=CTqC*|)3xC{#n@_{dpqUB>8VRHHR7Wp zUWjWh){v1?YO{q4mtMo>eehV#4-YRF0KaZ2B2w|{0|pmR=&)1o7B#%bOjCnwy}ul% zp7)C`nOYC8D$|^DlN-Ac(>N&Dc-8EDjU*l@ml#QxFZEwPMs~12lq&t8zZ14hhYH-u zYt_^$Gp1%cZh_&SHGi307*fzS%C}S=L-=rIJrP$W_S>-G zJ*5avMz=qC5Cfiiedz#sL2Xt5$$uA3b-!94TXL6CaiGwN;jvo#QNQ}p zWp|9o7{kPVZ57*8n*K!~D?T0sAMcExb)V72WI(#7?z4A;?-}zC1}=6)+lMqQ8`;z_ ibUx`nMM?3CcuT8Jo9S8^lB_I9%QG_L?0!g<$$tO>6Z?Gt literal 0 HcmV?d00001 diff --git a/certs/wildcard.expired-ocsp.der b/certs/wildcard.expired-ocsp.der new file mode 100644 index 0000000000000000000000000000000000000000..dddab906829f298330a001a0df176bab2fb3b5ef GIT binary patch literal 471 zcmXqLV!X`7$grS^@r*$e;|VrSZ8k<$R(1nMMwTYVoj{?j295I;iLr=GSf6DzC5rpT zgjYgg#rK`JSZUmPF2QePU}$P!W?*7qX>4I)8f8#yP-x(3z{$p{&Bx3n#mc}UQuWa8 z#eySRI$JbOKVQb`Ch72K;Y;kMF$w6umQa)2=1BML?1mQv!FiUya zIJMe5+P?ELGIFyrFgGzWGDLgK51U+_bLXq10fD{tS!K+En6Pww2iR};Ev!UWkJ1%EFD|DBxPYvyugHOo(B z-h3V#FV-!_Q&0MTJHcGDyjZu~QC_9#Q~zzb?(O{IQ=H`23#4r--Yev_t*lzAKl`Xs z*nvNVX&VwJrCItq2KZk5ADH>|y7Gqh8>^Ihr_Ay(xnDH<^6Zs)Zhkc>b9Q}uI`@-P z#vfMUUZt?b`gNMeGC%1wJWYDY{K4T;-?0t`Yvq^?4FR(Kk-57}GOsPT5Sw|=BeR?# e@K>*w#RY+-LGwgh827YEs#{j2FqBy_c>w@Q2)S7R literal 0 HcmV?d00001 diff --git a/domains/misc/badssl.com/index.html b/domains/misc/badssl.com/index.html index 586a7a3a..0e957ee9 100644 --- a/domains/misc/badssl.com/index.html +++ b/domains/misc/badssl.com/index.html @@ -164,6 +164,7 @@ dh-small-subgroup dh-composite incomplete-chain + expired-ocsp very rc4-md5 http diff --git a/domains/misc/expired-ocsp.badssl.com.conf b/domains/misc/expired-ocsp.badssl.com.conf new file mode 100644 index 00000000..c88fe3dc --- /dev/null +++ b/domains/misc/expired-ocsp.badssl.com.conf @@ -0,0 +1,20 @@ +server { + listen 80; + server_name expired-ocsp.badssl.com; + + return 301 https://$server_name$request_uri; +} + +server { + listen 443; + server_name expired-ocsp.badssl.com; + + include /var/www/badssl/nginx-includes/wildcard.normal.conf; + include /var/www/badssl/nginx-includes/tls-defaults.conf; + include /var/www/badssl/common/common.conf; + + ssl_stapling on; + ssl_stapling_file /var/www/badssl/certs/wildcard.expired-ocsp.der; + + root /var/www/badssl/domains/misc/expired-ocsp.badssl.com; +} diff --git a/domains/misc/expired-ocsp.badssl.com/index.html b/domains/misc/expired-ocsp.badssl.com/index.html new file mode 100644 index 00000000..ae5e41aa --- /dev/null +++ b/domains/misc/expired-ocsp.badssl.com/index.html @@ -0,0 +1,40 @@ + + + + expired-ocsp.badssl.com + + + + + +

expired-ocsp.
badssl.com

+ +