配置過程中需要生成一些mak文件,這些生成代碼用perl腳本生成,所以要安裝一個ActivePerl.
網址: http://www.activestate.com/activeperl/
下載后直接安裝就行了!
下載openssl
我用的是openssl-0.9.8g版本,解壓到c盤根目錄。
安裝步驟:
(可以參照openssl目錄下的install.win32)
1打開命令行
進入openssl源碼目錄。
cd c:/openssl-0.9.8.g
執行perl Configure VC-WIN32
2在c:/openssl-0.9.8.g目錄運行ms\do_ms
另外兩種方式如果使用也必須保證本機有編譯器才能使用。
:ms\do_masm(默認vc自帶的編譯器;也也以自己下載安裝)
:ms\do_nasm(需要自己下載)
3 注冊nmake命令,電腦上需要安裝vc++6.0或者vs2010 之類的東西,
DOS窗口轉到C:\Program Files\Microsoft Visual Studio \VC98\bin目錄(就是VC或VS對應的目錄,你電腦可能有差異)
執行vcvars32.bat以配置環境變量. 這樣就可以再dos中使用nmake命令了!
4、跳到openssl目錄下,編譯動態鏈接庫
cd c:/openssl-0.9.8.g
執行 >nmake -f ms\ntdll.mak
如果編譯成功,輸出在out32dll目錄下:包括可執行文件、兩個dll和兩個lib文件: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib
5/
> nmake -f ms\ntdll.mak test
> nmake -f ms\ntdll.mak install
這樣會在C盤根目錄 生成 C:\usr\local\ssl\bin
將C:\usr\local\ssl\bin 添加到環境變量,可以使用openssl了
打開bin文件夾下面的openssl.exe,打開生成命令.txt文件,輸入“生成命令.txt”文件中
genrsa -out rsa_private_key.pem 1024,並回車
得到生成成功的結果,如下圖:
此時,我們可以在bin文件夾中看到一個文件名為rsa_private_key.pem的文件,用記事本方式打開它,可以看到-----BEGIN RSA PRIVATE KEY-----開頭,-----END RSA PRIVATE KEY-----結尾的沒有換行的字符串,這個就是原始的私鑰。
2)把RSA私鑰轉換成PKCS8格式
輸入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt,並回車
得到生成功的結果,這個結果就是PKCS8格式的私鑰,如下圖:
右鍵點擊openssl窗口上邊邊緣,選擇編輯→標記,選中要復制的文字(如上圖),
此時繼續右鍵點擊openssl窗口上邊邊緣,選擇編輯→復制,
把復制的內容粘土進一個新的記事本中,可隨便命名,只要知道這個是PKCS8格式的私鑰即可。
3)生成公鑰
輸入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,並回車,
得到生成成功的結果,如下圖:
此時,我們可以在bin文件夾中看到一個文件名為rsa_public_key.pem的文件,用記事本方式打開它,可以看到-----BEGIN PUBLIC KEY-----開頭,
-----END PUBLIC KEY-----結尾的沒有換行的字符串,這個就是公鑰。
把rsa公鑰和私鑰配置到接口中
1) 整理公鑰和私鑰的格式
a) Java與。Net開發語言
◆商戶的私鑰
1、必須保證只有一行文字,即,沒有回車、換行、空格等
2、去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”,只保存這兩條文字之中的部分
◆商戶的公鑰
1、必須保證只有一行文字,即,沒有回車、換行、空格等
2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存這兩條文字之中的部分
3、保存到一個臨時的記事本中,再打開b.alipay.com,並用要綁定密鑰的支付寶賬號登錄,找到“獲取PID、KEY”的按鈕
4、根據http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9里的步驟上傳RSA公鑰,即剛才保存在臨時記事本中的那串字符串。
◆支付寶公鑰
1、必須保證只有一行文字,即,沒有回車、換行、空格等
2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存這兩條文字之中的部分
a) Php開發語言
◆商戶的私鑰
1、必須保證只有一行文字,即,沒有回車、換行、空格等
2、不需要對剛生成的(原始的)私鑰做pkcs8編碼,即不需要使用到PKCS8格式的私鑰
3、不需要去掉去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”
簡言之,只要維持剛生成出來的私鑰的內容即可。
◆商戶的公鑰
1、必須保證只有一行文字,即,沒有回車、換行、空格等
2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存這兩條文字之中的部分
3、保存到一個臨時的記事本中,再打開b.alipay.com,並用要綁定密鑰的支付寶賬號登錄,找到“獲取PID、KEY”的按鈕
4、根據http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9里的步驟上傳RSA公鑰,即剛才保存在臨時記事本中的那串字符串。
◆支付寶公鑰
1、必須保證只有一行文字,即,沒有回車、換行、空格等
2、須保留“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”這兩條文字。
簡言之,支付寶公鑰只需要維持原樣即可。
2) 把公鑰上傳給支付寶
操作流程見:http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9
3) 從支付寶那獲得支付寶公鑰
此處公鑰由技術支持提供,請找技術支持索要支付寶公鑰文件。
4) 把私鑰、支付寶公鑰配置到支付寶接口中
a) Java與。Net開發語言
打開代碼示例中config配置文件,分別在參數private_key、public_key中填寫好商戶的私鑰、支付寶的公鑰即可
b) Php開發語言
打開代碼實例中的key文件夾,
方法一:
分別打開rsa_private_key.pem私鑰文件、alipay_public_key.pem支付寶公鑰文件,按照“()”注釋內容填寫並保存
方法二:
按照1)b)整理后的私鑰文件和公鑰文件重新命名為“rsa_private_key.pem”、“alipay_public_key.pem”,直接覆蓋key文件夾中的這兩個文件即可。
PHP的RSA配置常見問題:
●PHP開發語言的代碼示例中openssl文件夾中的3個DLL文件用法
1、如果你的系統是windows系統,且system32文件目錄下沒有libeay32.dll、ssleay32.dll這兩個文件
那么需要拷貝這兩個文件到system32文件目錄。
2、如果您的php安裝目錄下(php\ext)中沒有php_openssl.dll
那么請把php_openssl.dll放在這個文件夾中