2012-11-02

IOS建立開發用證書 bat產生器

:: @author zp
:: IOS建立開發用證書 bat產生器


::------------------------------------------------------------------------------------------------------------
:: 步驟1 IOS建立認證證書請求.bat
:: 使用前提 有安裝Open ssl
:: http://www.openssl.org/related/binaries.html
::
:: 說明文件 http://help.adobe.com/zh_TW/as3/iphone/WS144092a96ffef7cc-371badff126abc17b1f-8000.html
@echo off

:: *設定Open ssl 路徑
SET OPEN_SSL_PATH=C:\OpenSSL-Win32

:: 金鑰檔名稱
SET KEY_NAME=

:: 憑證名稱
SET CERT_NAME=

:: E-MAIL
SET E_MAIL=

:: 國家 TW
SET COUNTRY=


SET RANDFILE=.rnd
SET OPENSSL=%OPEN_SSL_PATH%\bin\openssl.exe

:: 遺漏選項填寫
echo 歡迎使用 IOS建立認證證書請求 產生器

if "%KEY_NAME%"=="" (
echo.
echo 請輸入 要輸出 金鑰檔名稱
echo.
set /P KEY_NAME=[金鑰檔名稱]:
)

if "%COUNTRY%"=="" (
echo.
echo 請輸入 E-MAIL
echo.
set /P COUNTRY=[E-MAIL]:
)

if "%E_MAIL%"=="" (
echo.
echo 請輸入 國家 ex. TW
echo.
set /P E_MAIL=[國家]:
)

:: 申請認證證書名稱
SET REQUEST_CERT_NAME=%KEY_NAME%


"%OPENSSL%" genrsa -out %KEY_NAME%.key 2048

"%OPENSSL%" req -new -key %KEY_NAME%.key -out %REQUEST_CERT_NAME%.certSigningRequest  -subj "/emailAddress=%E_MAIL%, CN=%CERT_NAME%, C=%COUNTRY%"


:: 刪除多餘檔案
del .rnd

echo.
echo 輸出請求檔案 %REQUEST_CERT_NAME%.certSigningRequest 完成
echo 請至APPLE網站取得證書ios_development.cer
echo https://developer.apple.com/devcenter/ios/index.action
echo.

PAUSE



:: ------------------------------------------------------------------------------------------------------------
:: 步驟2 建立IOS開發用P12.bat
:: 說明文件 http://help.adobe.com/zh_TW/as3/iphone/WS144092a96ffef7cc-371badff126abc17b1f-7fff.html
:: 請先完成 IOS建立認證證書請求 並取得 證書.cer檔
@echo off

echo 請先完成 IOS建立認證證書請求 並取得 證書.cer檔

::設定Open ssl 路徑
if not defined OPEN_SSL_PATH (

SET OPEN_SSL_PATH=C:\OpenSSL-Win32

) else (
echo.
PAUSE
echo.
)
:: 證書檔名
SET CER_NAME=ios_development

:: 金鑰檔名稱
if not defined KEY_NAME (
SET KEY_NAME=
)
:: 要輸出的P12檔名iphone_dev
SET P12_NAME=

:cerName
:: 檢查是否有輸入預設名
if "%CER_NAME%"=="" (
echo.
echo 請輸入申請好的證書檔名 (.cer^)
echo.
set /P CER_NAME=[證書檔名]:
)

if not exist "%CER_NAME%.cer" (
echo.
echo %CER_NAME%.cer 不存在
echo.
SET CER_NAME=
GOTO cerName
)

:keyName
:: 檢查是否有輸入預設名
if "%KEY_NAME%"=="" (
echo.
echo 請輸入金鑰檔名稱 為之前生成的金鑰檔.key
echo.
set /P KEY_NAME=[金鑰檔名稱]:
)

if not exist "%KEY_NAME%.key" (
echo.
echo %KEY_NAME%.key 不存在
echo.
SET KEY_NAME=
GOTO keyName
)

if "%P12_NAME%"=="" (
echo.
echo 請輸入要輸出的p12檔名
echo.
set /P P12_NAME=[p12檔名]:
)

SET OPENSSL=%OPEN_SSL_PATH%\bin\openssl.exe

"%OPENSSL%" x509 -in %CER_NAME%.cer -inform DER -out developer_identity.pem -outform PEM

if not exist "developer_identity.pem" goto certFail

echo.
"%OPENSSL%" pkcs12 -export -inkey %KEY_NAME%.key -in developer_identity.pem -out %P12_NAME%.p12


:: 刪除多餘檔案

::del developer_identity.pem
if not exist "%P12_NAME%.p12" goto certFail

for /F "tokens=4" %%s in ('dir /-c "%P12_NAME%.p12"^|findstr /i %P12_NAME%.p12') do (
::echo 檔案大小為:%%s
    if /i %%s EQU  0 (
    del "%P12_NAME%.p12"
    goto certFail
    )
)
echo.
echo 製作P12證書 %P12_NAME%.p12 完成
echo.
PAUSE
exit

:certFail
echo.
echo 製作P12證書失敗
echo.
pause

:: ------------------------------------------------------------------------------------------------------------

:: 參考資料
:: 使用FlashDevelop免費創建AIR應用
:: http://www.9ria.com/news/2012/0725/24667.html

沒有留言:

張貼留言