@maorongrong
2016-09-20T09:30:13.000000Z
字数 2828
阅读 1344
Linux
备份原来 info 文件夹
$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
新建info文件
$ sudo mkdir /var/lib/dpkg/info
更新
$ sudo apt-get update
修复依赖关系
$ sudo apt-get -f install
假如系统上有某个package不满足依赖条件,该命令就会自动修复,并安装那个package依赖的packages。
将新的info文件下信息复制到原info文件下
$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old
删除新的info文件
$ sudo rm -rf /var/lib/dpkg/info
改回原来info文件夹名
$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info
/usr/bin/apt-get
这个是搜索、安装、卸载软件包最常用到的命令
/etc/apt/sources
这个文件很重要,记录的是软件源的地址
/var/cache/apt/archives
已经下载到的软件包都放在这里(用的是apt-get upgrade 命令),要定期清理否则会占用很大空间并有可能带来版本冲突问题。
/var/cache/apt/archives/partial
这个是没有完全下载的软件包存放目录
/var/lib/apt/lists
这个目录很重要,里面存放的都是软件源的metadate,也就是用apt-get update 时下载的文件
SSL:Ubuntu证书配置
怎样给openssl增加根证书
Ubuntu上CA证书的配置可以通过工具ca-certificates来方便的进行,也可 sudo apt-get install ca-certificates
安装。
需要安装CA证书我们只需要将其放在/usr/share/ca-certificates
目录或其子目录下,ca-certificates
工具就能自动扫描到。为了不与其它根证书混淆,我们创建一个子目录名为extra
。
接下来让ca-certificates工具帮我们安装CA证书:
sudo dpkg-reconfigure ca-certificates
Ubuntu把所有的证书都放在/etc/ssl/certs
目录下,包括CA证书和普通的证书。
我们安装的时候证书扩展名是.crt
,安装后扩展名变为了.pem
。.crt
证书是按base64编码的,如果.pem
也采用base64编码,那么这两者是可以通用的
对于各个linux发行版来说证书相关的密码和认证的机制由openssl提供,而预置的根证书由ca-certificates提供,ca-certificates包由debian。
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
目录下有变动的时候,update-ca-certificates
根据/etc/ca-certificates.conf
维护/etc/ssl/certs/
目录,对于/etc/ca-certificates.conf
中以#
开头的行忽略,以!
开头的行不予选择(标记为有问题),其他行在/etc/ssl/certs/
目录下生成软链接,并生成/etc/ssl/certs/certificates.crt
文件。
普通证书是指除CA之外的证书,用来做身份认证或签名的证书;而CA证书用来验证普通证书的可信性。
普通证书任意放在可以访问的目录下就可以了,也可以拷贝到Ubuntu的证书目录下/etc/ssl/certs
。
Secure Socket Layer,(安全套接字层)位于TCP/IP协议与各种应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现Web浏览器与服务器之间的身份认证和加密数据传输。
该协议由两层组成:SSL记录协议和SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。。
Transport Layer Security Protocol,(安全传输层协议)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。
最新版本的TLS 1.0建立在SSL 3.0协议规范之上,两者差别极小,可以理解为SSL 3.1。
在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。
如果出现使用cul扩展的时候提示curl call error(77): Problem with the SSL CA cert (path? access rights?)
或者使用yum
进行更新或者安装软件的时候提示失败
有一种可能就是系统的ca包没有更新包名为ca-certificates
更新一下这个包。
How to fix CA cert issues with Curl in Ubuntu 14.04?
Ubuntu 10.04/CURL: How do I fix/update the CA Bundle?
curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath:None
由于在ubuntu上CAfile
文件位置是 /etc/ssl/certs/ca-certificates.crt
,错误提示中的位置是错误的。因此,可以通过手动修改环境变量CURL_CA_BUNDLE
指向/etc/ssl/certs/ca-certificates.crt
。
或者在用户家目录下创建~/.curlrc
文件,并写入cacert=/etc/ssl/certs/ca-certificates.crt
保存生效即可。