自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenSSL:最好的SSL TLS加密庫(kù)

安全 數(shù)據(jù)安全
OpenSSL項(xiàng)目的目的是通過(guò)開(kāi)源合作精神開(kāi)發(fā)一種健壯的、可以和同類(lèi)型商業(yè)程序媲美的、全功能的,且開(kāi)源的應(yīng)用于SSL v2/v3(Secure Sockets Layer)和TLS v1(Transport Layer Security)協(xié)議的普遍適用的加密庫(kù)工具集。

OpenSSL項(xiàng)目的目的是通過(guò)開(kāi)源合作精神開(kāi)發(fā)一種健壯的、可以和同類(lèi)型商業(yè)程序媲美的、全功能的,且開(kāi)源的應(yīng)用于SSL v2/v3(Secure Sockets Layer)和TLS v1(Transport Layer Security)協(xié)議的普遍適用的加密庫(kù)工具集。本項(xiàng)目由世界范圍內(nèi)的志愿者們維護(hù),他們通過(guò)互聯(lián)網(wǎng)聯(lián)絡(luò)、計(jì)劃和開(kāi)發(fā)OpenSSL工具集及其相關(guān)文檔。

下載鏈接:http://down.51cto.com/data/155531

>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具

系統(tǒng)需求

OpenSSL可以在多種操作系統(tǒng)上安裝,但是本文只討論在Linux或BSD系統(tǒng)上的安裝。

安裝OpenSSL的系統(tǒng)需求很低,只要有 ANSI C 編譯器(推薦GCC)、Perl 5 、make 即可。但是OpenSSL的測(cè)試程序依賴(lài)于GNU BC,如果你需要運(yùn)行測(cè)試程序的話,就要事先安裝好它。

編譯選項(xiàng)

將下載回來(lái)的壓縮包解壓,進(jìn)入解壓后的目錄,即可使用 config 或 Configure 腳本進(jìn)行配置。OpenSSL的配置腳本與大多數(shù)典型的軟件包不同,它有自己的一套規(guī)則。詳細(xì)的安裝信息位于源碼樹(shù)下的 INSTALL Configure(特別是"PROCESS_ARGS"段) Makefile.shared Makefile.org 文件中。安裝后的使用與配置信息位于 doc 目錄中, FAQ 文件也可以提供一些參考。

config 腳本檢查系統(tǒng)環(huán)境并調(diào)用 Configure 完成配置,因此配置選項(xiàng)是通過(guò) config 腳本向 Configure 傳遞的。事實(shí)上 config 腳本的作用相當(dāng)于 config.guess ,所以如果你想直接調(diào)用 Configure 的話就一定要正確指定"操作系統(tǒng)-目標(biāo)平臺(tái)"(筆者推薦這個(gè)用法)。所有可用的目標(biāo)機(jī)器列表可以使用"./Configure LIST"命令獲取。Configure 腳本除了根據(jù) Makefile.org 生成 Makefile 之外,還在 crypto/opensslconf.h 中定義了許多宏(基于 crypto/opensslconf.h.in)。

在 config 或 Configure 命令行上可以使用許多選項(xiàng),大體上可以分為3類(lèi)。

全局選項(xiàng)

第一類(lèi)是全局性選項(xiàng):

--openssldir=OPENSSLDIR

安裝目錄,默認(rèn)是 /usr/local/ssl 。

--prefix=PREFIX

設(shè)置 lib include bin 目錄的前綴,默認(rèn)為 OPENSSLDIR 目錄。

--install_prefix=DESTDIR

設(shè)置安裝時(shí)以此目錄作為"根"目錄,通常用于打包,默認(rèn)為空。

zlib

zlib-dynamic

no-zlib

使用靜態(tài)的zlib壓縮庫(kù)、使用動(dòng)態(tài)的zlib壓縮庫(kù)、不使用zlib壓縮功能。

threads

no-threads

是否編譯支持多線程的庫(kù)。默認(rèn)支持。

shared

no-shared

是否生成動(dòng)態(tài)連接庫(kù)。

asm

no-asm

是否在編譯過(guò)程中使用匯編代碼加快編譯過(guò)程。

enable-sse2

no-sse2

啟用/禁用SSE2指令集加速。如果你的CPU支持SSE2指令集,就可以打開(kāi),否則就要關(guān)閉。

gmp

no-gmp

啟用/禁用GMP庫(kù)

rfc3779

no-rfc3779

啟用/禁用實(shí)現(xiàn)X509v3證書(shū)的IP地址擴(kuò)展

krb5

no-krb5

啟用/禁用 Kerberos 5 支持

ssl

no-ssl

ssl2

ssl3

no-ssl2

no-ssl3

tls

no-tls

啟用/禁用 SSL(包含了SSL2/SSL3) TLS 協(xié)議支持。

dso

no-dso

啟用/禁用調(diào)用其它動(dòng)態(tài)鏈接庫(kù)的功能。[提示]no-dso僅在no-shared的前提下可用。

[提示]為了安裝Apache的mod_ssl成功,SSLv2/SSLv3/TLS都必須開(kāi)啟。

算法選項(xiàng)

第二類(lèi)用于禁用crypto目錄下相應(yīng)的子目錄(主要是各種算法)。雖然理論上這些子目錄都可以通過(guò)"no-*"語(yǔ)法禁用,但是實(shí)際上,為了能夠最小安裝libcrypto,libssl,openssl,其中的大部分目錄都必須保留,實(shí)際可選的目錄僅有如下這些:

no-md2,no-md4,no-mdc2,no-ripemd

這些都是摘要算法,含義一目了然。

no-des,no-rc2,no-rc4,no-rc5,no-idea,no-bf,no-cast,no-camellia

這些都是對(duì)稱(chēng)加密算法,含義一目了然。"bf"是"Blowfish"的意思。

no-ec,no-dsa,no-ecdsa,no-dh,no-ecdh

這些都是不對(duì)稱(chēng)加密算法,含義一目了然。

no-comp

數(shù)據(jù)壓縮算法。因?yàn)槟壳皩?shí)際上并沒(méi)有壓縮算法,所以只是定義了一些空接口。

no-store

對(duì)象存儲(chǔ)功能。更多細(xì)節(jié)可以查看 crypto/store/README 文件。

[提示]OpenSSH 只依賴(lài)于該軟件包的加密庫(kù)(libcrypto),而帶有 HTTPS 支持的 Apache 則依賴(lài)于該軟件包的加密庫(kù)和 SSL/TLS 庫(kù)(libssl)。因此,如果你不打算使用 HTTPS 的話,可以只安裝加密庫(kù)(no-ssl no-tls);更多介紹可以查看 README 文件的"OVERVIEW"部分。事實(shí)上,為了能夠讓OpenSSH安裝成功,ripemd,des,rc4,bf,cast,dsa,dh目錄不能被禁止。

編譯器選項(xiàng)

第三類(lèi)是編譯器選項(xiàng)。大多數(shù)軟件包都是通過(guò)在運(yùn)行 configure 腳本的時(shí)候定義 CPPFLAGS CFLAGS LDFLAGS 環(huán)境變量來(lái)設(shè)置編譯選項(xiàng)的,但是OpenSSL卻不是這樣。OpenSSL的 Configure 腳本允許你在命令行上直接輸入 CPPFLAGS CFLAGS 的內(nèi)容。比如:-DDEVRANDOM='"/dev/urandom"' 可以用來(lái)指定隨機(jī)設(shè)備, -DSSL_FORBID_ENULL 則可以用于禁止使用NULL加密算法。`echo $CFLAGS` 則可以將 CFLAGS 變量添加上來(lái)。另一方面,LDFLAGS卻是無(wú)法通過(guò)Configure進(jìn)行設(shè)置的。因?yàn)镃onfigure會(huì)強(qiáng)制清空Makefile中的LDFLAGS,所以在運(yùn)行完Configure之后,可以使用一個(gè)sed修改所有Makefile中的 LDFLAGS(用于連接openssl)和SHARED_LDFLAGS(用于連接libcrypto,libssl庫(kù))。

比如筆者就經(jīng)常這樣使用 Configure 進(jìn)行配置:

./Configure ... -DSSL_FORBID_ENULL -DDEVRANDOM='"/dev/urandom"' `echo $CFLAGS`

find . -name "Makefile*" -exec sed -r -i -e"s|^(SHARED_)?LDFLAGS=|& $LDFLAGS |" {} \;

[提示]不能省略find命令內(nèi)"Makefile*"兩邊的引號(hào)。

編譯、測(cè)試、安裝

配置完畢后,需要使用 make depend 重新建立依賴(lài)關(guān)系,特別是你使用了"no-*"選項(xiàng)之后,否則編譯可能會(huì)失敗。

然后使用 make 命令編譯。如果編譯成功,那么最好使用 make test 進(jìn)行一下測(cè)試。

如果測(cè)試也通過(guò)了,那么接下來(lái)就是安裝了。安裝很簡(jiǎn)單,一條 make install 命令即可。你還可以使用 make install INSTALL_PREFIX=/other/dir 來(lái)將 /other/dir 當(dāng)作"根"進(jìn)行安裝,這通常用于打包。

配置文件

安裝完畢之后,接下來(lái)就是配置。OpenSSL的配置文件是 openssl.cnf ,位于 --openssldir 指定的目錄下。

在實(shí)踐中,OpenSSL 的一個(gè)重要用途就是證書(shū)簽發(fā)和管理,這需要配置文件的配合。如果你只是使用它的加密庫(kù),而不使用證書(shū)功能的話,就不需要了解如何配置OpenSSL 。

下面是一個(gè)簡(jiǎn)單的 openssl.cnf 文件,已經(jīng)可以用于證書(shū)簽發(fā)了。當(dāng)然,這份配置用來(lái)自己玩玩還行,指望用這個(gè)去做真正的"Big Brother",沒(méi)人會(huì)信你 :)

  1. ########################  
  2. # OpenSSL 配置文件示范 #  
  3. ########################  
  4. # [注意]這個(gè)示范文件并不是默認(rèn)設(shè)置。  
  5.  
  6.  
  7. ########  
  8. # 語(yǔ)法 #  
  9. ########  
  10. #  
  11. # 變量 = 值  
  12. #  
  13. # 語(yǔ)法很簡(jiǎn)單,一看就懂,但是有幾點(diǎn)需要說(shuō)明:  
  14. # 1. 字符串值最好使用雙引號(hào)界定,并且其中可以使用"\n","\r","\t"這些轉(zhuǎn)義序列("\"怎么表示?)。  
  15. # 2. 可以使用 ${變量名} 的形式引用同一字段中的變量,使用 ${字段名::變量名} 的形式引用其它字段中的變量。  
  16. # 3. 可以使用 ${EVP::環(huán)境變量} 的形式引用操作系統(tǒng)中定義的環(huán)境變量,若變量不存在則會(huì)導(dǎo)致錯(cuò)誤。  
  17. # 4. 可以在默認(rèn)字段定義與操作系統(tǒng)環(huán)境變量同名的變量作為默認(rèn)值來(lái)避免環(huán)境變量不存在導(dǎo)致的錯(cuò)誤。  
  18. # 5. 如果在同一字段內(nèi)有多個(gè)相同名稱(chēng)的變量,那么后面的值將覆蓋前面的值。  
  19. #  
  20.  
  21.  
  22. ############  
  23. # 默認(rèn)字段 #  
  24. ############  
  25. # 此部分是默認(rèn)字段[配置段],必須放在所有字段之前。  
  26. # 讀取配置文件數(shù)據(jù)時(shí),會(huì)首先根據(jù)字段名稱(chēng)去尋找相應(yīng)的配置段,如果沒(méi)有找到則會(huì)使用這里的默認(rèn)字段。  
  27.  
  28. # 定義 HOME 的默認(rèn)值,防止操作系統(tǒng)中不存在 HOME 環(huán)境變量。  
  29. HOME = .  
  30.  
  31. # 默認(rèn)的隨機(jī)數(shù)種子文件,建議設(shè)置為 /dev/random 或 /dev/urandom  
  32. RANDFILE = $ENV::HOME/.rnd  
  33.  
  34. # 擴(kuò)展對(duì)象定義  
  35. # 比如,OpenSSL中并未定義X.509證書(shū)的擴(kuò)展項(xiàng),在使用到的時(shí)候就會(huì)從下面對(duì)擴(kuò)展對(duì)象的定義中獲取。  
  36. # 定義的方法有兩種,第一種(反對(duì)使用)是存儲(chǔ)在外部文件中,也就是這里"oid_file"變量定義的文件。  
  37. #oid_file = $ENV::HOME/.oid  
  38. # 第二種是存儲(chǔ)在配置文件的一個(gè)字段中,也就是這里"oid_section"變量值所指定的字段。  
  39. oid_section = new_oids 
  40.  
  41. [ new_oids ]  
  42. # 可以在這里添加擴(kuò)展對(duì)象的定義,例如可以被'ca'和'req'使用。  
  43. # 格式如下:  
  44. # 對(duì)象簡(jiǎn)稱(chēng) = 對(duì)象數(shù)字ID  

 #p#

  1. ############################################################################################################  
  2. ####################  
  3. ##  證書(shū)請(qǐng)求配置  ##  
  4. ####################  
  5. # 在申請(qǐng)證書(shū)之前通常需要首先生成符合 PKCS#10 標(biāo)準(zhǔn)的證書(shū)請(qǐng)求封裝格式。  
  6. # openssl 的 req 指令實(shí)現(xiàn)了產(chǎn)生證書(shū)請(qǐng)求的功能,其相關(guān)選項(xiàng)的默認(rèn)值就來(lái)自于這里的設(shè)置。  
  7. # 證書(shū)請(qǐng)求的配置分成幾個(gè)字段,包括一個(gè)基本字段和幾個(gè)附屬字段。  
  8.  
  9.  
  10. ##### 證書(shū)請(qǐng)求配置的"基本字段",其它附屬字段都以它為入口 #####  
  11. [ req ]  
  12.  
  13. # 生成的證書(shū)中RSA密鑰對(duì)的默認(rèn)長(zhǎng)度,取值是2的整數(shù)次方。建議使用4096以上。  
  14. default_bits = 1024 
  15.  
  16. # 保存生成的私鑰文件的默認(rèn)文件名  
  17. default_keyfile = privkey.pem  
  18.  
  19. # 生成的私鑰文件是否采用口令加密保護(hù),可以設(shè)為yes或no。  
  20. encrypt_key = yes 
  21.  
  22. # 讀取輸入私鑰文件時(shí)的口令,如果未設(shè)置那么將會(huì)提示輸入。  
  23. input_password = secret 
  24. # 保存輸出私鑰文件時(shí)的口令,如果未設(shè)置那么將會(huì)提示輸入。  
  25. output_password = secret 
  26.  
  27. # 簽名默認(rèn)使用的信息摘要算法,可以使用:md5,sha1,mdc2,md2  
  28. default_md = md5 
  29.  
  30. # 為一些字段設(shè)置默認(rèn)的字符串類(lèi)型,比如證書(shū)請(qǐng)求中的城市和組織名稱(chēng)??赡艿娜≈岛徒忉屓缦拢? 
  31. # default: 包含了 PrintableString, T61String, BMPString 三種類(lèi)型  
  32. # pkix  : 包含了 PrintableString, BMPString 兩種類(lèi)型  
  33. # utf8only: 只使用 UTF8 字符串。推薦使用這個(gè),這樣可以完美的包含任意字符。  
  34. # nombstr : 包含了 PrintableString, T61String 兩種類(lèi)型(不使用 BMPStrings 或 UTF8String 兩種多字節(jié)字符類(lèi)型)  
  35. string_mask = nombstr 
  36.  
  37. # 如果設(shè)為yes,那么不管是命令行還是配置文件中的字符串都將按照UTF-8編碼看待。默認(rèn)值no表示僅使用ASCII編碼。  
  38. utf8 = no 
  39.  
  40. # 如果設(shè)為no,那么 req 指令將直接從配置文件中讀取證書(shū)字段的信息,而不提示用戶(hù)輸入。  
  41. prompt = yes 
  42.  
  43. # 定義輸入用戶(hù)信息選項(xiàng)的"特征名稱(chēng)"字段名,該擴(kuò)展字段定義了多項(xiàng)用戶(hù)信息。  
  44. distinguished_name = req_distinguished_name 
  45.  
  46. # 定義證書(shū)請(qǐng)求屬性的字段名,該擴(kuò)展字段定義了證書(shū)請(qǐng)求的一些屬性,但openssl的證書(shū)簽發(fā)工具并不使用它們。  
  47. attributes = req_attributes 
  48.  
  49. # 證書(shū)請(qǐng)求擴(kuò)展的字段名,該擴(kuò)展字段定義了要加入到證書(shū)請(qǐng)求中的一系列擴(kuò)展項(xiàng)。  
  50. req_extensions = v3_req 
  51.  
  52. # 生成自簽名證書(shū)時(shí)要使用的證書(shū)擴(kuò)展項(xiàng)字段名,該擴(kuò)展字段定義了要加入到證書(shū)中的一系列擴(kuò)展項(xiàng)。  
  53. x509_extensions = v3_ca 
  54.  
  55.  
  56. ##### "特征名稱(chēng)"字段包含了用戶(hù)的標(biāo)識(shí)信息 #####  
  57. [ req_distinguished_name ]  
  58. countryName = CN  #只能使用2字母的國(guó)家代碼  
  59. stateOrProvinceName = 省份或直轄市名稱(chēng)  
  60. organizationName = 組織名  
  61. commonName = 網(wǎng)站的全限定域名  
  62.  
  63.  
  64. ##### 證書(shū)請(qǐng)求屬性字段定義了證書(shū)請(qǐng)求的一些屬性(都不是必須的) #####  
  65. [ req_attributes ]  
  66.  
  67.  
  68. ##### 要加入到證書(shū)請(qǐng)求中的一系列擴(kuò)展項(xiàng) #####  
  69. [ v3_req ]  
  70. basicConstraints = CA:FALSE  
  71. keyUsage = nonRepudiation, digitalSignature, keyEncipherment  
  72.  
  73.  
  74. #### 生成自簽名證書(shū)時(shí)使用的證書(shū)擴(kuò)展項(xiàng) #####  
  75. ### 因?yàn)檫@部分是非必須的,所以不翻譯了,事實(shí)上你完全可以刪除這部分內(nèi)容  
  76. [ v3_ca ]  
  77. # PKIX recommendation.  
  78. subjectKeyIdentifier = hash 
  79. authorityKeyIdentifier = keyid:always,issuer:always  
  80.  
  81. # This is what PKIX recommends but some broken software chokes on critical  
  82. # extensions.  
  83. #basicConstraints = critical,CA:true  
  84. # So we do this instead.  
  85. basicConstraints = CA:true  
  86.  
  87. # Key usage: this is typical for a CA certificate. However since it will  
  88. # prevent it being used as an test self-signed certificate it is best  
  89. # left out by default.  
  90. keyUsage = cRLSign, keyCertSign  
  91.  
  92. # Some might want this also  
  93. nsCertType = sslCA, emailCA  
  94.  
  95. # Include email address in subject alt name: another PKIX recommendation  
  96. subjectAltName = email:copy  
  97. # Copy issuer details  
  98. issuerissuerAltName = issuer:copy  
  99.  
  100. # DER hex encoding of an extension: beware experts only!  
  101. obj=DER:02:03  
  102. # Where 'obj' is a standard or added object  
  103. # You can even override a supported extension:  
  104. basicConstraints = critical, DER:30:03:01:01:FF  

 

 #p#

  1. ############################################################################################################  
  2. ####################  
  3. ##  證書(shū)簽發(fā)配置  ##  
  4. ####################  
  5. # openssl 的 ca 指令實(shí)現(xiàn)了證書(shū)簽發(fā)的功能,其相關(guān)選項(xiàng)的默認(rèn)值就來(lái)自于這里的設(shè)置。  
  6.  
  7. # 這個(gè)字段只是通過(guò)唯一的default_ca變量來(lái)指定默認(rèn)的CA主配置字段的入口(-name 命令行選項(xiàng)的默認(rèn)值)  
  8. [ ca ]  
  9. default_ca = CA_default 
  10.  
  11.  
  12. ##### 默認(rèn)的CA主配置字段 #####  
  13. [ CA_default ]  
  14.  
  15. # 保存所有信息的文件夾,這個(gè)變量只是為了給后面的變量使用  
  16. dir = ./demoCA  
  17.  
  18. # 存放CA本身根證書(shū)的文件名  
  19. certificate = $dir/cacert.pem  
  20.  
  21. # 存放CA自身私鑰的文件名  
  22. private_key = $dir/private/cakey.pem  
  23.  
  24. # 簽發(fā)證書(shū)時(shí)使用的序列號(hào)文本文件,里面必須包含下一個(gè)可用的16進(jìn)制數(shù)字。  
  25. serial = $dir/serial  
  26.  
  27. # 存放新簽發(fā)證書(shū)的默認(rèn)目錄,證書(shū)名就是該證書(shū)的系列號(hào),后綴是.pem  
  28. new_certs_dir = $dir/newcerts  
  29.  
  30. # 已生成的證書(shū)的默認(rèn)保存目錄  
  31. certs = $dir/certs  
  32.  
  33. # 保存已簽發(fā)證書(shū)的文本數(shù)據(jù)庫(kù)文件,初始時(shí)為空。  
  34. database = $dir/index.txt  
  35.  
  36. # 存放當(dāng)前CRL編號(hào)的文件,對(duì)于v1版本的CRL則必須注釋掉該行  
  37. crlnumber = $dir/crlnumber  
  38.  
  39. # 當(dāng)前CRL文件  
  40. crl = $dir/crl.pem  
  41.  
  42. # 生成的證書(shū)撤銷(xiāo)列表(CRL)的默認(rèn)保存目錄  
  43. crl_dir = $dir/crl  
  44.  
  45. # 同一個(gè)subject是否只能創(chuàng)建一個(gè)證書(shū),設(shè)為no表示可以創(chuàng)建多個(gè)  
  46. unique_subject = yes 
  47.  
  48. # 簽發(fā)新證書(shū)以及CRL時(shí)默認(rèn)的摘要算法,可以使用:md5,md2,mdc2,sha1  
  49. default_md = sha1 
  50.  
  51. # 通常,證書(shū)簽發(fā)的特征名稱(chēng)(DN)域的各個(gè)參數(shù)順序與證書(shū)策略的參數(shù)順序一致。  
  52. # 但是,如果這里設(shè)為yes則保持與證書(shū)請(qǐng)求中的參數(shù)順序一致。  
  53. preserve = no 
  54.  
  55. # 當(dāng)用戶(hù)需要確認(rèn)簽發(fā)證書(shū)時(shí)顯示可讀證書(shū)DN域的方式。可用值與 x509 指令的 -nameopt 選項(xiàng)相同。  
  56. name_opt = ca_default 
  57. # 當(dāng)用戶(hù)需要確認(rèn)簽發(fā)證書(shū)時(shí)顯示證書(shū)域的方式。  
  58. # 可用值與 x509 指令的 -certopt 選項(xiàng)相同,不過(guò) no_signame 和 no_sigdump 總被默認(rèn)設(shè)置。  
  59. cert_opt  = ca_default 
  60.  
  61. # 新證書(shū)默認(rèn)的生效日期,如果未設(shè)置則使用簽發(fā)時(shí)的時(shí)間,格式為:YYMMDDHHNNSSZ(年月日時(shí)分秒Z)  
  62. default_startdate = 080303223344Z 
  63. # 新證書(shū)默認(rèn)的失效日期,格式為:YYMMDDHHNNSSZ(年月日時(shí)分秒Z)  
  64. default_enddate = 090303223344Z 
  65. # 新簽發(fā)的證書(shū)默認(rèn)有效期,以天為單位  
  66. default_days = 365 
  67.  
  68. # 從當(dāng)前CRL(證書(shū)撤銷(xiāo)列表)到下次CRL發(fā)布的間隔天數(shù)  
  69. default_crl_days = 30 
  70.  
  71. # 是否將證書(shū)請(qǐng)求中的擴(kuò)展項(xiàng)信息加入到證書(shū)擴(kuò)展項(xiàng)中去。取值范圍以及解釋?zhuān)? 
  72. # none: 忽略所有證書(shū)請(qǐng)求中的擴(kuò)展項(xiàng)  
  73. # copy: 將證書(shū)擴(kuò)展項(xiàng)中沒(méi)有的項(xiàng)目復(fù)制到證書(shū)中  
  74. # copyall: 將所有證書(shū)請(qǐng)求中的擴(kuò)展項(xiàng)都復(fù)制過(guò)去,并且覆蓋證書(shū)擴(kuò)展項(xiàng)中原來(lái)已經(jīng)存在的值。  
  75. copy_extensions = none 
  76.  
  77. # 定義用于證書(shū)請(qǐng)求DN域匹配策略的字段,用于決定CA要求和處理證書(shū)請(qǐng)求提供的DN域的各個(gè)參數(shù)值的規(guī)則。  
  78. policy  = policy_match 
  79.  
  80. # 定義X.509證書(shū)擴(kuò)展項(xiàng)的字段。如果沒(méi)有提供這個(gè)字段則生成X.509v1而不是v3格式的證書(shū)。  
  81. x509_extensions = usr_cert 
  82.  
  83. # 定義生成CRL時(shí)需要加入的擴(kuò)展項(xiàng)字段。如果沒(méi)有定義則生成v1而不是v2版本的CRL。  
  84. crl_extcrl_extensions = crl_ext  
  85.  
  86.  
  87. ##### 證書(shū)請(qǐng)求信息的匹配策略 #####  
  88. # 變量名稱(chēng)是DN域?qū)ο蟮拿Q(chēng),變量值可以是:  
  89. # match: 該變量在證書(shū)請(qǐng)求中的值必須與CA證書(shū)相應(yīng)的變量值完全相同,否則拒簽。  
  90. # supplied: 該變量在證書(shū)請(qǐng)求中必須提供(值可以不同),否則拒簽。  
  91. # optional: 該變量在證書(shū)請(qǐng)求中可以存在也可以不存在(相當(dāng)于沒(méi)有要求)。  
  92. # 除非preserve=yes或者在ca命令中使用了-preserveDN,否則在簽發(fā)證書(shū)時(shí)將刪除匹配策略中未提及的對(duì)象。  
  93. [ policy_match ]  
  94. countryName  = match 
  95. stateOrProvinceName = match 
  96. organizationName = match 
  97. commonName  = supplied 
  98. organizationalUnitName = optional 
  99. emailAddress  = optional 
  100.  
  101. ### 下面的部分由于都是非必須的部分,因此也不翻譯了。  
  102. ### 事實(shí)上你完全可以從配置文件中刪除這些內(nèi)容  
  103. [ usr_cert ]  
  104.  
  105. # These extensions are added when 'ca' signs a request.  
  106.  
  107. # This goes against PKIX guidelines but some CAs do it and some software  
  108. # requires this to avoid interpreting an end user certificate as a CA.  
  109.  
  110. basicConstraints=CA:FALSE  
  111.  
  112. # Here are some examples of the usage of nsCertType. If it is omitted  
  113. # the certificate can be used for anything *except* object signing.  
  114.  
  115. # This is OK for an SSL server.  
  116. nsCertType   = server 
  117.  
  118. # For an object signing certificate this would be used.  
  119. nsCertType = objsign 
  120.  
  121. # For normal client use this is typical  
  122. nsCertType = client, email  
  123.  
  124. # and for everything including object signing:  
  125. nsCertType = client, email, objsign  
  126.  
  127. # This is typical in keyUsage for a client certificate.  
  128. keyUsage = nonRepudiation, digitalSignature, keyEncipherment  
  129.  
  130. # This will be displayed in Netscape's comment listbox.  
  131. nsComment   = "OpenSSL Generated Certificate" 
  132.  
  133. # PKIX recommendations harmless if included in all certificates.  
  134. subjectKeyIdentifier=hash 
  135. authorityKeyIdentifier=keyid,issuer  
  136.  
  137. # This stuff is for subjectAltName and issuerAltname.  
  138. # Import the email address.  
  139. subjectAltName=email:copy  
  140. # An alternative to produce certificates that aren't  
  141. # deprecated according to PKIX.  
  142. subjectAltName=email:move  
  143.  
  144. # Copy subject details  
  145. issuerissuerAltName=issuer:copy  
  146.  
  147. #nsCaRevocationUrl  = http://www.domain.dom/ca-crl.pem  
  148. #nsBaseUrl  
  149. #nsRevocationUrl  
  150. #nsRenewalUrl  
  151. #nsCaPolicyUrl  
  152. #nsSslServerName  
  153.  
  154. [ crl_ext ]  
  155.  
  156. # CRL extensions.  
  157. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.  
  158.  
  159. issuerissuerAltName=issuer:copy  
  160. authorityKeyIdentifier=keyid:always,issuer:always  
  161.  
  162.  
  163.  
  164. [ proxy_cert_ext ]  
  165. # These extensions should be added when creating a proxy certificate  
  166.  
  167. # This goes against PKIX guidelines but some CAs do it and some software  
  168. # requires this to avoid interpreting an end user certificate as a CA.  
  169.  
  170. basicConstraints=CA:FALSE  
  171.  
  172. # Here are some examples of the usage of nsCertType. If it is omitted  
  173. # the certificate can be used for anything *except* object signing.  
  174.  
  175. # This is OK for an SSL server.  
  176. nsCertType   = server 
  177.  
  178. # For an object signing certificate this would be used.  
  179. nsCertType = objsign 
  180.  
  181. # For normal client use this is typical  
  182. nsCertType = client, email  
  183.  
  184. # and for everything including object signing:  
  185. nsCertType = client, email, objsign  
  186.  
  187. # This is typical in keyUsage for a client certificate.  
  188. keyUsage = nonRepudiation, digitalSignature, keyEncipherment  
  189.  
  190. # This will be displayed in Netscape's comment listbox.  
  191. nsComment   = "OpenSSL Generated Certificate" 
  192.  
  193. # PKIX recommendations harmless if included in all certificates.  
  194. subjectKeyIdentifier=hash 
  195. authorityKeyIdentifier=keyid,issuer:always  
  196.  
  197. # This stuff is for subjectAltName and issuerAltname.  
  198. # Import the email address.  
  199. subjectAltName=email:copy  
  200. # An alternative to produce certificates that aren't  
  201. # deprecated according to PKIX.  
  202. subjectAltName=email:move  
  203.  
  204. # Copy subject details  
  205. issuerissuerAltName=issuer:copy  
  206.  
  207. #nsCaRevocationUrl  = http://www.domain.dom/ca-crl.pem  
  208. #nsBaseUrl  
  209. #nsRevocationUrl  
  210. #nsRenewalUrl  
  211. #nsCaPolicyUrl  
  212. #nsSslServerName  
  213.  
  214. # This really needs to be in place for it to be a proxy certificate.  
  215. proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo  

 

責(zé)任編輯:佚名 來(lái)源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2011-03-08 14:14:31

Proftpd

2016-10-31 10:25:24

2015-05-13 09:45:13

2024-04-01 00:00:00

SSL證書(shū)開(kāi)源

2023-09-22 17:36:37

2013-03-26 10:03:20

2019-03-11 08:19:39

SSLTLS服務(wù)器

2011-03-04 09:30:56

PureFTPdTLS防火墻

2013-09-27 13:27:18

2011-03-07 15:16:40

FileZilla SSSLTLS

2022-03-05 18:25:51

SSLTLS協(xié)議

2018-03-26 14:19:49

2020-06-08 10:14:55

OpenSSLSSL證書(shū)Linux

2015-05-20 16:53:49

網(wǎng)絡(luò)·安全技術(shù)周刊

2020-05-14 20:10:12

SSLTLSLinux

2009-09-22 12:20:12

ibmdwLotus

2021-05-08 05:56:15

加密OpenSSL密鑰

2015-04-02 10:26:52

2015-03-05 15:01:52

2020-08-05 08:31:51

SSL TLSNode.js
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)