首頁 運維 linux運維 關於openssl ca的詳細介紹

關於openssl ca的詳細介紹

Jul 19, 2017 am 09:19 AM
openssl

        關於憑證授權中心CA以及數位憑證等概念,請移步 OpenSSL 與 SSL 數位憑證概念貼 。

openssl是一個開源程式的套件、這個套件有三個部分組成:一是libcryto,這是一個具有通用功能的加密庫,裡面實現了眾多的加密庫;二是libssl,這個是實現ssl機制的,它是用來實現TLS/SSL的功能;三是openssl,是個多功能命令列工具,它可以實現加密解密,甚至還可以當CA來用,可以讓你建立憑證、撤銷憑證。

預設情況ubuntu和CentOS上都已安裝好openssl。 CentOS 6.x 上有關ssl憑證的目錄結構:

/etc/pki/CA/
           newcerts    存放CA(已核發)過的數位憑證(憑證備份目錄)
           private     存放CA的私鑰
           crl         軟連結到certs/ca-bundle.crt
certs/      該伺服器上的憑證存放目錄,可以房子自己的憑證和內建憑證
                  ca-bundle.crt            openssl.cnf    openssl的CA主配置檔案


由於openssl ca指令對設定檔(預設值/etc/pki/tls/openssl.cnf)的依賴性非常強,所以建議結合我的另一篇文章

#設定檔openssl.cnf

來閱讀,如果不明白設定文件,下面的內容很可能不知所雲。

在設定檔中指定了簽署憑證時所需檔案的結構,預設openssl.cnf中的結構要求如下:

[ CA_default ]dir             = /etc/pki/CA             # 定义路径变量
certs           = $dir/certs              # 已颁发证书的保存目录
database        = $dir/index.txt          # 数据库索引文件
new_certs_dir   = $dir/newcerts           # 新签署的证书保存目录
certificate     = $dir/cacert.pem         # CA证书路径名
serial          = $dir/serial             # 当前证书序列号
private_key     = $dir/private/cakey.pem  # CA的私钥路径名
登入後複製

其中目錄/etc/pki /CA/{certs,newcerts,private}在安裝openssl後就預設存在,所以無需獨立創建,但證書的database檔案index.txt和序列檔serial必須創建好,且序號檔案中得先給定一個序號,如"01"。

[root@xuexi tmp]# touch /etc/pki/CA/index.txt 

[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial
登入後複製

另外,要簽署證書請求,需要CA自己的私鑰檔案以及CA自己的證書,先建立好CA的私鑰,存放位置為設定檔中private_key所指定的值,預設為/etc/pki/CA/private/cakey.pem。
[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem
登入後複製

(1).使用openssl ca自建CA
要提供CA自己的證書,測試環境下CA只能自簽署,使用"openssl req -x509"、"openssl x509"和"openssl ca"都可以自簽署證書請求文件,此處僅介紹openssl ca命令自身自簽署的方法。

先建立CA的憑證要求文件,建議使用CA的私鑰文件/etc/pki/CA/private/cakey.pem來建立待自簽署的憑證要求文件,雖然非必須,但方便管理。建立請求檔時,其中Country Name、State or Province Name、Organization Name和Common Name預設是必須提供的。

[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:FJLocality Name (eg, city) [Default City]:XMOrganization Name (eg, company) [Default Company Ltd]:JMOrganizational Unit Name (eg, section) []:ITCommon Name (eg, your name or your server's hostname) []:www.iwant.comEmail Address []:.
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
登入後複製

然後使用openssl ca指令自簽署該憑證要求檔案。如果有兩次互動式詢問則表示自簽署將成功,如果失敗,則考慮資料庫檔案index.txt是否建立、序號檔案serial是否存在且有序號值、私鑰檔案cakey.pem是否路徑正確、建立證書請求文件時是否該提供的沒有提供等情況。
[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr
Using configuration from /etc/pki/tls/openssl.cnf    # 默认采用/etc/pki/tls/openssl.cnf作为配置文件
Check that the request matches the signature         # 验证证书请求文件的数字签名,确保该证书请求文件是完整未修改过的
Signature ok
Certificate Details:                                 # 待生成证书的信息
        Serial Number: 1 (0x1)                        # 序列号为1
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT      # 证书有效期起始日为2017-6-17 10:06:29Not After : Jun 27 10:06:29 2018 GMT      # 证书有效期终止日为2018-6-17 10:06:29Subject:                                      # Subject信息,subject是非常重要的信息
            countryName               = CN
            stateOrProvinceName       = FJ
            organizationName          = JM
            organizationalUnitName    = IT
            commonName                = www.iwant.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
 Certificate is to be certified until Jun 27 10:06:29 2018 GMT (365 days)
Sign the certificate? [y/n]:y 
 
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries           # 向数据库文件添加一条该证书的记录
Certificate:                                    # 该证书的信息
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT
            Not After : Jun 27 10:06:29 2018 GMT
        Subject: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:00:94:49:33:f4:90:a4:fc:a4:6b:65:75:4c:be:4f:
                    d1:3f:95:bd:24:60:c8:45:f9:eb:00:31:ac:45:6b:
                    ae:bb:63:bf:f2:a3:0c:e3:d3:50:20:33:1e:d9:e1:
                    8a:49:42:c6:e0:67:6d:3a:cb:2f:9c:90:ab:4c:10:
                    7a:4a:82:e1:6e:a0:6a:63:84:56:1c:a2:5f:11:60:99:e0:cd:20:68:e9:98:40:68:c2:43:7c:97:12:ee:31:8e:b1:73:7d:36:99:97:49:31:50:c1:8c:47:10:16:f9:5d:37:11:00:73:3b:01:62:9b:36:36:97:08:48:31:93:56:3f:6a:d9:a6:99Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
 
    Signature Algorithm: sha1WithRSAEncryption
         1e:4e:f4:e4:c9:33:52:85:69:ae:b4:2a:37:37:44:90:9b:52:
         b3:e9:89:1c:b2:f2:17:41:d8:05:02:63:9a:4f:64:4d:c9:ce:
         0c:81:48:22:4f:73:8a:4c:f7:b8:bf:64:b2:77:8a:2e:43:80:         39:03:de:27:19:09:d2:88:39:11:8f:8b:4b:37:c0:12:68:ef:         79:5b:28:d4:cf:c9:b8:e1:77:24:6e:b4:5b:83:4a:46:49:a1:
         ad:5c:b7:d8:da:49:9a:45:73:b9:8e:eb:1a:9c:2e:6c:70:d3:
         c5:db:9c:46:02:59:42:bf:ad:bc:21:4c:d1:6b:6b:a7:87:33:
         1a:6b-----BEGIN CERTIFICATE-----MIICiTCCAfKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBMMQswCQYDVQQGEwJDTjEL
MAkGA1UECAwCRkoxCzAJBgNVBAoMAkpNMQswCQYDVQQLDAJJVDEWMBQGA1UEAwwN
d3d3Lml3YW50LmNvbTAeFw0xNzA2MjcxMDA2MjlaFw0xODA2MjcxMDA2MjlaMEwx
CzAJBgNVBAYTAkNOMQswCQYDVQQIDAJGSjELMAkGA1UECgwCSk0xCzAJBgNVBAsM
AklUMRYwFAYDVQQDDA13d3cuaXdhbnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCUSTP0kKT8pGtldUy+T9E/lb0kYMhF+esAMaxFa667Y7/yowzj01Ag
Mx7Z4YpJQsbgZ206yy+ckKtMEHpKguFuoGpjhFYcol8RYJngzSBo6ZhAaMJDfJcS
7jGOsXN9NpmXSTFQwYxHEBb5XTcRAHM7AWKbNjaXCEgxk1Y/atmmmQIDAQABo3sw
eTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpQ3d1kfGJHQg9GJ39qljPlLSimYwHwYDVR0j
BBgwFoAUpQ3d1kfGJHQg9GJ39qljPlLSimYwDQYJKoZIhvcNAQEFBQADgYEAHk70
5MkzUoVprrQqNzdEkJtSs+mJHLLyF0HYBQJjmk9kTcnODIFIIk9zikz3uL9ksneK
LkOAOQPeJxkJ0og5EY+LSzfAEmjveVso1M/JuOF3JG60W4NKRkmhrVy32NpJmkVz
uY7rGpwubHDTxducRgJZQr+tvCFM0Wtrp4czGms=
-----END CERTIFICATE-----Data Base Updated
登入後複製

自簽署成功後,在/etc/pki/CA目錄下將產生一系列檔案。
[root@xuexi tmp]# tree -C /etc/pki/CA/etc/pki/CA
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│   └── 01.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old
登入後複製

其中newcerts目錄下的01.pem即為剛才自簽署的證書文件,因為它是CA自身的證書,所以根據設定檔中的"certificate=$dir/cacert.pem"項,應該將其放入/etc/pki/CA目錄下,且命名為cacert.pem,只有這樣以後才能簽署其它憑證請求。
[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem
登入後複製

至此,自建CA就完成了,檢視下資料庫索引檔案和序號檔案。
[root@xuexi tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com

[root@xuexi tmp]# cat /etc/pki/CA/serial02
登入後複製

那麼,下次簽署憑證要求時,序號將會是"02"。
將上述自建CA的過程總結如下:

[root@xuexi tmp]# touch /etc/pki/CA/index.txt 
[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial
[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem
[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr
[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem
登入後複製

以上过程是完全读取默认配置文件创建的,其实很多过程是没有那么严格的,openssl ca命令自身可以指定很多选项覆盖配置文件中的项,但既然提供了默认的配置文件及目录结构,为了方便管理,仍然建议完全采用配置文件中的项。

(2).为他人颁发证书。

首先申请者创建一个证书请求文件。

[root@xuexi tmp]# openssl req -new -key privatekey.pem -out youwant1.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:FJLocality Name (eg, city) [Default City]:XMOrganization Name (eg, company) [Default Company Ltd]:JMOrganizational Unit Name (eg, section) []:.Common Name (eg, your name or your server's hostname) []:www.youwant.comEmail Address []:.
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
登入後複製

其中Country Name、State or Province Name、Organization Name和Common Name必须提供,且前三者必须和CA的subject中的对应项完全相同。这些是由配置文件中的匹配策略决定的。

[ ca ]
default_ca      = CA_default            # The default ca section
[ CA_default ]
policy          = policy_match
[ policy_match ]
countryName             = matchstateOrProvinceName     = matchorganizationName        = matchorganizationalUnitName  = optional
commonName              = suppliedemailAddress            = optional
登入後複製

"match"表示openssl ca要签署的证书请求文件中的项要和CA证书中的项匹配,即要相同,"supplied"表示必须要提供的项,"optional"表示可选项,所以可以留空。

现在就可以将证书请求文件发送给CA,让CA帮忙签署。

[root@xuexi tmp]# openssl ca -in youwant1.csr
登入後複製

签署成功后,查看下/etc/pki/CA下的文件结构。

[root@xuexi tmp]# tree -C /etc/pki/CA/
/etc/pki/CA/├── cacert.pem
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── newcerts
│   ├── 01.pem
│   └── 02.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old 
4 directories, 10 files
登入後複製

其中"02.pem"就是刚才签署成功的证书,将此证书发送给申请者即表示颁发完成。

再看下数据库索引文件和序列号文件。

[root@xuexi tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com
V       180627110022Z           02      unknown /C=CN/ST=FJ/O=JM/CN=www.youwant.com

[root@xuexi tmp]# cat /etc/pki/CA/serial03
登入後複製

(3).openssl ca命令用法

经过上面的示例,应该对openssl ca命令的用法大致了解了,下面是其完整的用法说明,不包括crl相关功能。

openssl ca [-verbose] [-config filename] [-name section] [-startdate ] [-enddate ] [-days arg] [-md arg] [-policy arg] [-keyfile arg] [-key arg] [-passin arg] [-cert ]
[-selfsign] [- ] [-out ] [-notext] [-outdir ] [-infiles] [-ss_cert ] [-preserveDN] [-noemailDN] [-batch] [-extensions section] [-extfile section] [-subj arg] [-utf8]
登入後複製

要注意,ca命令是用于签署证书的,所以它所需要的文件除了配置文件外就是私钥文件和证书请求文件,而签名后生成的文件是证书文件,因此使用"-in"指定的对象是待签署文件,"-infiles"则是指定多个待签署文件,"-keyfile"是指定私钥文件,"-out"是指定输出的证书文件。

【选项说明:】-config filename :指定要使用的配置文件,指定后将忽略openssl.cnf中指定的关于ca的配置选项。-name section    :指定使用配置文件中的那个section。指定后将忽略openssl.cnf中的default_ca段。-in filename     :指定要被CA签署的单个证书请求文件。根CA为其他证书签署时使用。-infiles         :该选项只能是最后一个选项,该选项所接的所有参数都被认为是要被签署的证书请求文件,即一次性签署多个请求文件时使用的选项。-selfsign        :自签署。指定-ss_cert选项时该选项被忽略。-ss_cert filename:将被CA自签署的单个证书文件。也就是说要重新签署证书。-out filename    :证书的输出文件,同时也会输出到屏幕。不指定时默认输出到stdout。-outdir dir_name :证书的输出目录。指定该选项时,将自动在此目录下生成一个文件名包含16进制serial值的".pem"证书文件。-cert            :CA自己的证书文件。-keyfile filename:指定签署证书请求时的私钥文件,即CA自己的私钥文件。-key passwd_value:指定私钥的加密密码。-passin arg      :传递解密密码-verbose         :打印操作执行时的详细信息-notext          :禁止以文本格式将证书输出到"-out"指定的文件中-days arg        :证书有效期限,从创建时刻开始算startdate,有效期结束点为enddate。-startdate       :自定义证书的开始时间,和"-enddate"一起使用可以推算出证书有效期。-enddate         :自定义证书的结束时间。-md alg          :指定单向加密算法-policy arg      :该选项是配置文件中的section内容,该选项指定了证书信息中的field部分是否需要强制提供还是要强制匹配,
                 :或者可提供可不提供。详细的见配置文件说明。-extensions section:指定当前创建的证书使用配置文件中的哪个section作为扩展属性。-batch           :签署时使用批处理模式,即非交互模式。该模式下不会有两次询问(是否签署、是否提交)。-subj arg        :替换证书请求中的subject,格式/type0=value0/type1=value1/type2=...
登入後複製

配置文件关于ca的部分,其中被标记为必须项的表示配置文件中或者命令行中必须给出该选项及其值。

new_certs_dir    :等同于"-outdir"选项。必须项
certificat       :等同于"-cert"选项,CA自己的证书文件。必须项
private_key      :等同于"-keyfile"选项,签署证书请求文件时的私钥文件,即CA自己的私钥文件。必须项
default_days     :等同于"-days"选项
default_startdate:等同于"-startdate"选项。
default_enddate  :等同于"-enddate"选项。
default_md       :等同于"-md"选项。必须项
database         :openssl维护的数据库文件。存放证书条目信息及状态信息。必须项
serial           :已颁发证书的序列号(16进制)文件。必须项且该文件中必须存在一个序列值
unique_subject   :如果设置为yes,database中的subject列值必须不重复。如果设置为no,允许subject重复。默认是yes,
                 :这是为了兼容老版本的Openssl,推荐设置为no。
x509_extensions  :等同于"-extensions"选项。
policy           :等同于"-policy"选项。必须项
name_opt/cert_opt:证书的展示格式,虽非必须但建议设置为ca_default,若不设置将默认使用老版本的证书格式(不建议如此)。
                 :伪命令ca无法直接设置这两个选项,而伪命令x509的"-nameopt"和"-certopt"选项可以分别设置。
copy_extensions  :决定证书请求中的扩展项如何处理的。如果设置为none或不写该选项,则扩展项被忽略并且不复制到证书中去。
                 :如果设置为copy,则证书请求中已存在而证书中不存在的扩展项将复制到证书中。
                 :如果设置为copyall,则证书请求中所有的扩展项都复制到证书中,此时若证书中已存在某扩展项,则先删除再复制。
                 :该选项的主要作用是允许证书请求为特定的扩展项如subjectAltName提供值。
                 :使用该选项前请先查看man ca中的WARNINGS部分。建议一般简单使用时设置为none或不设置。
登入後複製

以上是關於openssl ca的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
Debian上Tigervnc的日誌在哪查看 Debian上Tigervnc的日誌在哪查看 Apr 13, 2025 am 07:24 AM

在Debian系統中,Tigervnc服務器的日誌文件通常存儲在用戶的home目錄下的.vnc文件夾內。如果您以特定用戶身份運行Tigervnc,那麼日誌文件名通常類似於xf:1.log,其中xf:1代表用戶名。要查看這些日誌,您可以使用以下命令:cat~/.vnc/xf:1.log或者,您可以使用文本編輯器打開日誌文件:nano~/.vnc/xf:1.log請注意,訪問和查看日誌文件可能需要root權限,這取決於系統的安全設置。

debian readdir如何與其他工具集成 debian readdir如何與其他工具集成 Apr 13, 2025 am 09:42 AM

Debian系統中的readdir函數是用於讀取目錄內容的系統調用,常用於C語言編程。本文將介紹如何將readdir與其他工具集成,以增強其功能。方法一:C語言程序與管道結合首先,編寫一個C程序調用readdir函數並輸出結果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

如何解讀Debian Sniffer的輸出結果 如何解讀Debian Sniffer的輸出結果 Apr 12, 2025 pm 11:00 PM

DebianSniffer是一個網絡嗅探工具,用於捕獲和分析網絡數據包時間戳(Timestamp):顯示數據包捕獲的時間,通常以秒為單位。源IP地址(SourceIP):發送數據包的設備的網絡地址。目標IP地址(DestinationIP):接收數據包的設備的網絡地址。源端口(SourcePort):發送數據包的設備使用的端口號。目標端口(Destinatio

Debian系統如何安裝PHPStorm Debian系統如何安裝PHPStorm Apr 13, 2025 am 06:03 AM

在Debian系統上安裝PHPStorm,輕鬆搞定你的PHP開發環境!以下步驟將引導您完成整個安裝過程。安裝步驟:下載PHPStorm:訪問JetBrains官網,下載PHPStorm最新版本。解壓安裝包:使用wget或curl下載後,解壓到指定目錄(例如/opt)。命令示例:wgethttps://download.jetbrains.com/phpstorm/phpstorm-2024.3.5.tar.gztar-xzfphpstorm-2024.3.5.tar.gz

Debian如何回收不再使用的包 Debian如何回收不再使用的包 Apr 13, 2025 am 08:51 AM

本文介紹如何在Debian系統中清理無用軟件包,釋放磁盤空間。第一步:更新軟件包列表確保你的軟件包列表是最新的:sudoaptupdate第二步:查看已安裝的軟件包使用以下命令查看所有已安裝的軟件包:dpkg--get-selections|grep-vdeinstall第三步:識別冗餘軟件包利用aptitude工具查找不再需要的軟件包。 aptitude會提供建議,幫助你安全地刪除軟件包:sudoaptitudesearch'~pimportant'此命令列出標記

如何在Debian上監控Nginx SSL性能 如何在Debian上監控Nginx SSL性能 Apr 12, 2025 pm 10:18 PM

本文介紹如何在Debian系統上有效監控Nginx服務器的SSL性能。我們將使用NginxExporter將Nginx狀態數據導出到Prometheus,再通過Grafana進行可視化展示。第一步:配置Nginx首先,我們需要在Nginx配置文件中啟用stub_status模塊來獲取Nginx的狀態信息。在你的Nginx配置文件(通常位於/etc/nginx/nginx.conf或其包含文件中)中添加以下代碼段:location/nginx_status{stub_status

Tomcat日誌中如何定位內存洩漏 Tomcat日誌中如何定位內存洩漏 Apr 13, 2025 am 08:18 AM

本文介紹如何通過Tomcat日誌和相關工具排查內存洩漏問題。一、內存監控與堆轉儲首先,使用JVisualVM或jstat等工具實時監控Tomcat內存使用情況,觀察堆內存變化,判斷是否存在內存洩漏。一旦懷疑有洩漏,使用jmap命令生成堆轉儲文件(heap.bin):jmap-dump:format=b,file=heap.bin其中為Tomcat進程ID。二、堆轉儲文件分析使用EclipseMemoryAnalyzerTool(MAT)或其他工具打開heap.bin文件,分析內存

See all articles