OpenSSl生成證書及使用

 

注:測試瀏覽器IE8以上版本git


一:生成CA證書 目前不使用第三方權威機構的CA來認證,本身充當CA的角色。 openssl中有以下後綴名的文件 .key格式:私有的密鑰 .csr格式:證書籤名請求(證書請求文件),含有公鑰信息,certificate signing request的縮寫 .crt格式:證書文件,certificate的縮寫 .crl格式:證書吊銷列表,Certificate Revocation List的縮寫 .pem格式:用於導出,導入證書時候的證書的格式,有證書開頭,結尾的格式 網上下載一個openssl軟件
1.建立私鑰: (此時會建立一個密鑰對,即一個公鑰一個私鑰) C:\OpenSSL\bin>openssl genrsa -out ca/sotech.key 2048 2.建立證書請求 : 這裏將生成一個新的文件cert.csr,即一個證書請求文件,你能夠拿着這個文件去數字證書頒發機構(即CA)申請一個數字證書。CA會給你一個新的文件cacert.pem,那纔是你的數字證書。 C:\OpenSSL\bin>openssl req -new -key ca/sotech.key -out ca/sotech.csr ----- Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:LN Locality Name (eg, city) []:DL Organization Name (eg, company) [Internet Widgits Pty Ltd]:SOTECH Organizational Unit Name (eg, section) []:HQ Common Name (eg, YOUR name) []:SOTECH Email Address []:ruizhilive@163.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:x1ex5GjG An optional company name []:x1ex5GjG 3.自簽署證書 : 生成cer文件 C:\OpenSSL\bin>openssl x509 -req -in ca/sotech.csr -signkey ca/sotech.key -days 10950 -out ca/sotech.cer -days 3650 控制有效期限爲3650天,默認爲30天。 二.生成server證書。 1.建立私鑰 : C:\OpenSSL\bin>openssl genrsa -out server/server_30.key 2048 2.建立證書請求 : C:\OpenSSL\bin>openssl req -new -key server/server_30.key -out server/server_30.csr ----- Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:LN Locality Name (eg, city) []:AS Organization Name (eg, company) [Internet Widgits Pty Ltd]:AK Organizational Unit Name (eg, section) []:IT Common Name (eg, YOUR name) []:10.18.88.66 註釋:必定要寫服務器所在的ip地址localhost
Email Address []:ruizhilive@163.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:46ZHzJc1 An optional company name []:46ZHzJc1 3.自簽署證書 : C:\OpenSSL\bin>openssl x509 -req -in server/server_30.csr -signkey server/server_30.key -CA ca/sotech.cer -CAkey ca/sotech.key -CAcreateserial -days 10950 -out server/server_30.pem 4.將證書導出成瀏覽器支持的.p12格式 : C:\OpenSSL\bin>openssl pkcs12 -export -clcerts -in server/server_30.pem -inkey server/server_30.key -out server/server_30.p12 密碼: 46ZHzJc1 三.生成client證書。 1.建立私鑰 :admin C:\OpenSSL\bin>openssl genrsa -out client/client_admin.key 2048 2.建立證書請求 : C:\OpenSSL\bin>openssl req -new -key client/client_admin.key -out client/client_admin.csr ----- Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:LN Locality Name (eg, city) []:AS Organization Name (eg, company) [Internet Widgits Pty Ltd]:AK Organizational Unit Name (eg, section) []:IT Common Name (eg, YOUR name) []:admin Email Address []:ruizhilive@163.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:46ZHzJc1 An optional company name []:46ZHzJc1 3.自簽署證書 : C:\OpenSSL\bin>openssl x509 -req -in client/client_admin.csr -signkey client/client_admin.key -CA ca/sotech.cer -CAkey ca/sotech.key -CAcreateserial -days 10950 -out client/client_admin.pem 4.將證書導出成瀏覽器支持的.p12格式 : C:\OpenSSL\bin>openssl pkcs12 -export -clcerts -in client/client_admin.pem -inkey client/client_admin.key -out client/client_admin.p12 密碼: changeit 四.根據ca證書生成jks文件 C:\OpenSSL\bin>"C:\Program Files\Java\jdk1.7.0_80\bin\keytool" -keystore C:\openssl\bin\jks\truststore.jks -keypass 46ZHzJc1 -storepass 46ZHzJc1 -alias sotech -import -trustcacerts -file C:\openssl\bin\ca\sotech.cer 五.配置tomcat ssl 修改conf/server.xml。tomcat7中多了SSLEnabled="true"屬性。keystorefile, truststorefile設置爲你正確的相關路徑,或者直接複製到C:\apache-tomcat-7.0.75目錄下 tomcat7的配置: <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="server_30.p12" keystorePass="46ZHzJc1" keystoreType="PKCS12" truststoreFile="truststore.jks" truststorePass="46ZHzJc1" truststoreType="JKS" /> 六.導入證書 將sotech.p12,client_admin.p12分別導入到IE中去(打開IE->;Internet選項->內容->證書)。 sotech.p12導入至受信任的根證書頒發機構, client_admin.p12導入至我的 七.驗證ssl配置是否正確訪問你的應用https://localhost:8443/,若是配置正確的話會出現請求你數字證書的對話框。 另: web.xml <login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> SSL的受權設置(window環境寫不寫均可以,待研究) <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/SSL/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
相關文章
相關標籤/搜索