Add drive letter to paths.
[shibboleth/sp.git] / configs / keygen.bat
1 @echo off\r
2 setlocal\r
3 \r
4 if exist %~dp0sp-key.pem goto protect\r
5 if exist %~dp0sp-cert.pem goto protect\r
6 \r
7 set DAYS=\r
8 set FQDN=\r
9 set TEMP_DOMAIN_NAME=\r
10 set PARAM=\r
11 \r
12 :opt_start\r
13 set PARAM=%1\r
14 if not defined PARAM goto opt_end\r
15 if %1==-cn goto opt_fqdn\r
16 if %1==-years goto opt_years\r
17 goto usage\r
18 :opt_end\r
19 \r
20 if not defined DAYS set DAYS=10\r
21 set /a DAYS=%DAYS%*365\r
22 \r
23 if not defined FQDN goto guess_fqdn\r
24 \r
25 :generate\r
26 set PATH=%~dp0..\..\lib;%~dp0..\..\bin\r
27 %~dp0..\..\bin\openssl.exe req -x509 -days %DAYS% -newkey rsa:2048 -nodes -keyout %~dp0sp-key.pem -out %~dp0sp-cert.pem -subj /CN=%FQDN% -config %~dp0openssl.cnf -extensions usr_cert -set_serial 0\r
28 exit /b\r
29 \r
30 :protect\r
31 echo The files sp-key.pem and/or sp-cert.pem already exist!\r
32 exit /b\r
33 \r
34 :opt_fqdn\r
35 set FQDN=%2\r
36 shift\r
37 shift\r
38 goto opt_start\r
39 \r
40 :opt_years\r
41 set DAYS=%2\r
42 shift\r
43 shift\r
44 goto opt_start\r
45 \r
46 :usage\r
47 echo usage: keygen [-cn cert common name to use] [-years years to issue cert]\r
48 exit /b\r
49 \r
50 :guess_fqdn\r
51 for /F "tokens=2 delims=:" %%i in ('"ipconfig /all | findstr /c:"Primary DNS Suffix""') do set TEMP_DOMAIN_NAME=%%i\r
52 if defined TEMP_DOMAIN_NAME set FQDN=%TEMP_DOMAIN_NAME: =%\r
53 set TEMP_DOMAIN_NAME=\r
54 if defined USERDNSDOMAIN set FQDN=%USERDNSDOMAIN%\r
55 \r
56 for /F %%i in ('hostname') do set HOST=%%i\r
57 if defined FQDN (set FQDN=%HOST%.%FQDN%) else (set FQDN=%HOST%)\r
58 \r
59 echo >%FQDN%\r
60 for /F %%i in ('dir /b/l %FQDN%') do set FQDN=%%i\r
61 del %FQDN%\r
62 goto generate\r