Ⅰ 如何使用openssl 製作ca證書
最近做CA登陸,用到OpenSSL 來製作證書,說真的,用OpenSSL的命令行製作證書的確不方便。 首先要安裝OpenSSL,然後在控制台中輸入冗長的命令,一不小心還很容易出錯,就算是熟悉了命令行, 多做了幾次還是會弄混淆命令的參數,基於以上原因
Ⅱ 怎樣給openssl增加根證書
ca-certificates包含的根證書存放在/usr/share/ca-certificates目錄下,按照 名/證書.crt 的文件名存放。同時所有的根證書在/etc/ca-certificates.conf文件中列表,並且軟鏈接到/etc/ssl/certs/.pem。ca-certifiacates包中提供/usr/sbin/update-ca-certificates命令,當/usr/share/ca-certificates目錄下有變動的時候,根據/etc/ca-certificates.conf維護/etc/ssl/certs/目錄。
update-ca-certificates根據/etc/ca-certificates.conf維護/etc/ssl/certs/,對於/etc/ca-certificates.conf中以#開頭的行忽略,以!開頭的行不予選擇(標記為有問題),其他行在/etc/ssl/certs/目錄下生成軟鏈接,並生成/etc/ssl/certs/certificates.crt文件。
Ⅲ 如何使用openssl生成證書
Step 1. Create key (password protected)
openssl genrsa -out prvtkey.pem 1024/2038 (with out password protected)
openssl genrsa -des3 -out prvtkey.pem 1024/2048 (password protected)
這個命令會生成一個/2048位的密鑰。
Step 2. Create certification request
openssl req -new -key prvtkey.pem -out cert.csr
openssl req -new -nodes -key prvtkey.pem -out cert.csr
這個命令將會生成一個證書請求,當然,用到了前面生成的密鑰prvtkey.pem文件
這里將生成一個新的文件cert.csr,即一個證書請求文件,你可以拿著這個文件去數字證書頒發機構(即CA)申請一個數字證書。CA會給你一個新的文件cacert.pem,那才是你的數字證書。
Step 3: Send certificate request to Certification Authority (CA)
如果是自己做測試,那麼證書的申請機構和頒發機構都是自己。就可以用下面這個命令來生成證書:
openssl req -new -x509 -key prvtkey.pem -out cacert.pem -days 1095
這個命令將用上面生成的密鑰privkey.pem生成一個數字證書cacert.pem
cacert.pem 生成過程見「OpenSSL建立自己的CA」
有了privkey.pem和cacert.pem文件後就可以在自己的程序中使用了,比如做一個加密通訊的伺服器
-------------
OpenSSL建立自己的CA
(1) 環境准備
首先,需要准備一個目錄放置CA文件,包括頒發的證書和CRL(Certificate Revoke List)。
這里我們選擇目錄 /var/MyCA。
然後我們在/var/MyCA下建立兩個目錄,certs用來保存我們的CA頒發的所有的證書的副本;private用來保存CA證書的私鑰匙。
除了生成鑰匙,在我們的CA體系中還需要創建三個文件。第一個文件用來跟蹤最後一次頒發的證書的序列號,我們把它命名為serial,初始化為01。第二個文件是一個排序資料庫,用來跟蹤已經頒發的證書。我們把它命名為index.txt,文件內容為空。
$ mkdir /var/MyCA
$ cd /var/MyCA
$ mkdir certs private
$ chmod g-rwx,o-rwx private
$ echo "01" > serial
$ touch index.txt
第三個文件是OpenSSL的配置文件,創建起來要棘手點。示例如下:
$ touch openssl.cnf
文件內容如下:
[ ca ]
default_ca = myca
[ myca ]
dir = /var/MyCA
certificate = $dir/cacert.pem
database = $dir/index.txt
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serial
default_crl_days= 7
default_days = 365
default_md = md5
policy = myca_policy
x509_extensions = certificate_extensions
[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = supplied
organizationName= supplied
organizationalUnitName = optional
[ certificate_extensions ]
basicConstraints= CA:false
我們需要告訴OpenSSL配置文件的路徑,有兩種方法可以達成目的:通過config命令選項;通過環境變數OPENSSL_CONF。這里我們選擇環境變數的方式。
$ OPENSSL_CONF=/var/MyCA/openssl.cnf"
$ export OPENSSL_CONF
(2) 生成根證書 (Root Certificate)
我們需要一個證書來為自己頒發的證書簽名,這個證書可從其他CA獲取,或者是自簽名的根證書。這里我們生成一個自簽名的根證書。
首先我們需要往配置文件裡面添加一些信息,如下所示,節名和命令行工具的命令req一樣。我們把所有必要的信息都寫進配置,而不是在命令行輸入,這是唯一指定X.509v3擴展的方式,也能讓我們對如何創建根證書有個清晰的把握。
[ req ]
default_bits = 2048
default_keyfile = /var/MyCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = root_ca_distinguished_name
x509_extensions = root_ca_extensions
[ root_ca_distinguished_name ]
commonName = My Test CA
stateOrProvinceName = HZ
countryName = CN
emailAddress = [email protected]
organizationName = Root Certification Authority
[ root_ca_extensions ]
basicConstraints = CA:true
萬事俱備,我們可以生成根證書了。注意設置好環境變數OPENSSL_CONF。
$ openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 356
註:「-days 356「控制有效期限為365天,默認為30天。
驗證一下我們生成的文件。
$ openssl x509 -in cacert.pem -text -noout
(3) 給客戶頒發證書
在給客戶頒發證書之前,需要客戶提供證書的基本信息。我們另外開啟一個終端窗口,使用默認的OpenSSL配置文件(不要讓之前的OPENSSL_CONF干擾我們,那個配置是專門用來生成根證書的)。
命令和我們生成根證書的類似,都是req,不過需要提供一些額外的信息。如下:
$ openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM
有兩次提示要口令,第一次的口令用來加密私鑰匙testkey.pem,第二次口令一般被OpenSSL忽略。
結果生成兩個文件:testkey.pem,私鑰匙;testreq.pem,請求信息,其中包括公鑰匙。
我們來看看testreq.pem都有哪些信息?
$ openssl req -in testreq.pem -text -noout
現在,我們可以把testreq.pem提交給我們的CA生成證書了。
為了方便起見,我們假定testreq.pem在//var/MyCA/private/中。
$ openssl ca -in testreq.pem
有三次提示,一次是問你CA的私鑰匙密碼,兩次是確認,輸出的結果就是為客戶頒發的證書。
可以通過batch選項取消命令提示,可通過notext選項取消證書的輸出顯示。
此外,還可以一次給多個客戶頒發證書,方法是用 infiles選項替換in選項,不過這個選項必須放在最後,因為此後的任何字元均被處理為文件名稱列表。
生成的證書放在certs目錄,同時index.txt和serial的內容都發生了改變。
publicdoubleside=10.0;//去掉static
Ⅳ 怎麼用OpenSSL從https網站上導出SSL的CA證書
別人的網站是不可以導出的完整的SSL證書文件,只能下載公證書,瀏覽器打開後輸入域名點擊小鎖就可以下載。如果是根證書也是同樣。
Ⅳ openssl作為CA使用時,證書配置文件有certs= $dir/certs和 new_cert
# 已生成的證書的默認保存目錄
certs = $dir/certs
# 存放新簽發證書的默認目錄,證書名就是該證書的系列號,後綴是.pem
new_certs_dir = $dir/newcerts
Ⅵ 用openssl配置證書雙向認證,建立雙向認證時,為什麼客戶端驗證時需要安裝二級ca證書
請問二級證書怎麼載入呢?openssl怎麼生成證書鏈呢?我也遇到這個問題了。。。崩潰
Ⅶ openssl怎樣創建個人證書
一:生成CA證書
目前不使用第三方權威機構的CA來認證,自己充當CA的角色。
網上下載一個openssl軟體
1. 創建私鑰 :
C:/OpenSSL/bin>openssl genrsa -out ca/ca-key.pem 1024
2.創建證書請求 :
C:/OpenSSL/bin>openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:root
Email Address []:sky
3.自簽署證書 :
C:/OpenSSL/bin>openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
4.將證書導出成瀏覽器支持的.p12格式 : (不需要可以省略)
C:/OpenSSL/bin>openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
密碼:changeit
二.生成server證書。
1.創建私鑰 :
C:/OpenSSL/bin>openssl genrsa -out server/server-key.pem 1024
2.創建證書請求 :
C:/OpenSSL/bin>openssl req -new -out server/server-req.csr -key server/server-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:192.168.1.246 注釋:一定要寫伺服器所在的ip地址
Email Address []:sky
3.自簽署證書 :
C:/OpenSSL/bin>openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
4.將證書導出成瀏覽器支持的.p12格式 :
C:/OpenSSL/bin>openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12
密碼:changeit
三.生成client證書。
1.創建私鑰 :
C:/OpenSSL/bin>openssl genrsa -out client/client-key.pem 1024
2009-7-17 22:32 回復
yakeqin
1位粉絲
2樓
2.創建證書請求 :
C:/OpenSSL/bin>openssl req -new -out client/client-req.csr -key client/client-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:sky
Email Address []:sky 注釋:就是登入中心的用戶(本來用戶名應該是Common Name,但是中山公安的不知道為什麼使用的Email Address,其他版本沒有測試)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:tsing
3.自簽署證書 :
C:/OpenSSL/bin>openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
4.將證書導出成瀏覽器支持的.p12格式 :
C:/OpenSSL/bin>openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
密碼:changeit
四.根據ca證書生成jks文件
C:/Java/jdk1.5.0_09/bin > keytool -keystore C:/openssl/bin/jks/truststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file C:/openssl/bin/ca/ca-cert.pem
五.配置tomcat ssl
修改conf/server.xml。tomcat6中多了SSLEnabled="true"屬性。keystorefile, truststorefile設置為你正確的相關路徑
xml 代碼
tomcat 5.5的配置:
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="server.p12" keystorePass="changeit" keystoreType="PKCS12"
truststoreFile="truststore.jks" truststorePass="222222" truststoreType="JKS" />
tomcat6.0的配置:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="server.p12" keystorePass="changeit" keystoreType="PKCS12"
truststoreFile="truststore.jks" truststorePass="222222" truststoreType="JKS"/>
六.導入證書
將ca.p12,client.p12分別導入到IE中去(打開IE->;Internet選項->內容->證書)。
ca.p12導入至受信任的根證書頒發機構,client.p12導入至個人
七.驗證ssl配置是否正確訪問你的應用http://ip:8443/,如果配置正確的話會出現請求你數字證書的對話框。
Ⅷ 用openssl配置CA證書時報錯ca\ca-key.pem: No such file or directory,不知道在哪裡找CA文件
是ca的路徑不對
首先需要在整個openssl的文件夾下建立一個ca文件夾,就是可以看見bin文件夾的目錄下
或者是編譯好的,就是與out32dll同級的目錄下建立ca
輸入的時候把路徑改為../ca/ca-key.pem