<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[YUM 公钥认证及导入及CentOS Linux自建yum源自制公钥。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Sun, 11 Sep 2016 09:40:58 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	CentOS Linux自建yum源，在后面贴上文字：<br/>来自：http://www.live-in.org/archives/1410.html<br/><br/> rpm -qa gpg-pubkey*<br/>rpm包来源合法性及完整性检验：<br/>&nbsp;&nbsp;前提：在当前系统上导入包的制作者的公钥<br/>&nbsp;&nbsp; 导入：<br/>&nbsp;&nbsp;&nbsp;&nbsp;rpm --import /path/to/key_file<br/>&nbsp;&nbsp;&nbsp;&nbsp;# rpm -qa gpg-pubkey*<br/>&nbsp;&nbsp;&nbsp;&nbsp;显示所有已经导入的gpg格式的公钥<br/>&nbsp;&nbsp;&nbsp;&nbsp;# rpm -qi gpg-pubkey-NAME<br/>&nbsp;&nbsp;&nbsp;&nbsp;显示密钥的详细信息<br/>&nbsp;&nbsp; 检查包：安装过程中会自动执行<br/>&nbsp;&nbsp; 手动检查：<br/>&nbsp;&nbsp;&nbsp;&nbsp;rpm -K /path/to/package_file<br/>&nbsp;&nbsp;&nbsp;&nbsp;rpm --checksig /path/to/package_file<br/>&nbsp;&nbsp;&nbsp;&nbsp; 不检查包完整性：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rpm -K --nodigest<br/>&nbsp;&nbsp;&nbsp;&nbsp; 不检查来源合法性：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rpm -K --nosignature<br/><br/>来自：http://1983939925.blog.51cto.com/8400375/1529663<br/><br/>======================================<br/>平时使用yum方式安装更新软件，可以自建一个yum源，同步官方更新源，这样如果本地有机器要升级的话就可以直接使用本地的更新源了。这里系统为CentOS 6.2。<br/><br/>一、服务端<br/>1、安装需要的环境<br/>自建yum本地更新源可以使用http服务或ftp服务，由于ftp服务器要考虑防火墙配置，主动、被动连接模式，这里使用http服务。<br/><br/>安装apache：<br/><br/>yum install httpd<br/><br/>配置apache过程略过。<br/><br/>2、安装createrepo软件包<br/><br/>yum install createrepo<br/><br/>3、建立存放软件包目录<br/><br/>mkdir -p /home/yum/centos/6/<br/>chown -R apache:apache /home/yum/<br/><br/>4、apache创建虚拟目录<br/><br/>vim /etc/httpd/conf/httpd.conf<br/><br/>在最后加入：<br/><br/>NameVirtualHost *:80<br/>&lt;VirtualHost *:80&gt;<br/>DocumentRoot /home/yum<br/>ServerName XXX.XXX.XXX #填写绑定的域名<br/>&lt;Directory &quot;/home/yum&quot;&gt;<br/>Options Indexes FollowSymlinks<br/>&lt;/Directory&gt;<br/>&lt;/VirtualHost&gt;<br/><br/>5、将rpm软件包放入/home/yum/centos/6/目录<br/><br/>6、执行createrepo<br/><br/>createrepo /home/yum/centos/6<br/><br/>在/home/yum/centos/6目录下会自动生成repodata目录，repodata目录里是一个数据库，其中的文件主要是XML格式，描述了一个rpm包的详细信息，如依赖关系，包含文件，校验码信息。<br/><br/>二、客户端<br/>1、创建yum客户端repo文件<br/><br/>vim /etc/yum.repos.d/test.repo<br/><br/>以.repo为后缀，这里名字为test。<br/><br/>添加：<br/><br/>[test]<br/>name=yum test<br/>baseurl=http://XXX.XXX.XXX/centos/6<br/>enabled=1<br/>gpgcheck=1<br/>gpgkey=http://XXX.XXX.XXX/centos/RPM-GPG-KEY-TESTREPO<br/><br/>说明：<br/>[test]：是repo id。<br/>name：仓库的描述。<br/>baseurl：仓库的位置。<br/>enabled：是否启用这个仓库，1为起用，0为禁用。<br/>gpgcheck：是否检查gpg签名，1为检查，0为不检查。<br/>（XXX.XXX.XXX是绑定的域名）<br/><br/>PS：如果是内部使用，gpgcheck可以设置为0（同时gpgkey也不用设置），如果更新源放在公网上的话还是需要检查gpg签名，保证客户端得到来源的可靠性。<br/><br/>2、查看yum更新源列表<br/><br/>yum repolist<br/><br/>是否有名为yum test的源出现。<br/><br/>三、（可选）服务端使用gpg key对rpm软件包进行签名<br/>1、创建gpg key<br/>gpg key也是基于非对称加密算法，产生公钥和私钥。<br/><br/>执行：<br/><br/>cd ~<br/>gpg --gen-key<br/><br/>创建过程：<br/><br/>选择加密算法、加密强度、是否设置有效期<br/><br/>设置名称和邮箱<br/><br/><br/>输入保护密码<br/><br/><br/>在/root/.gnupg目录下生成公钥和私钥文件。据观察pubring.gpg是公钥，secring.gpg是私钥。<br/><br/>2、查看公钥<br/><br/>gpg --list-key<br/><br/>显示如下：<br/><br/>/root/.gnupg/pubring.gpg<br/>------------------------<br/>pub&nbsp;&nbsp; 2048R/EF9632F2 2012-07-21<br/>uid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test repo &lt;testrepo@example.com&gt;<br/>sub&nbsp;&nbsp; 2048R/C17A35BC 2012-07-21<br/><br/>3、在家目录建立.rpmmacros文件<br/><br/>cd ~<br/>vim .rpmmacros<br/><br/>添加：<br/><br/>%_signature gpg<br/>%_gpg_name test repo &lt;testrepo@example.com&gt;<br/><br/>%_gpg_name后面要填写gpg --list-key命令显示的uid，指定这一组key进行签名。<br/><br/>4、对rpm软件包签名<br/>以mtree-2.7-1.el6.rf.i686.rpm软件包为例。<br/><br/>cd /home/yum/centos/6<br/>rpm --resign mtree-2.7-1.el6.rf.i686.rpm<br/><br/>随后需要输入保护密码。<br/><br/>5、导出公钥到文本文件<br/><br/>cd ~<br/>gpg --export -a &quot;test repo &lt;testrepo@example.com&gt;&quot; &gt;RPM-GPG-KEY-TESTREPO<br/><br/>6、验证是否签名成功<br/>查看rpm数据库中的公钥：<br/><br/>rpm -q gpg-pubkey<br/><br/>gpg-pubkey-c105b9de-4e0fd3a3<br/><br/>导入公钥：<br/><br/>rpm --import RPM-GPG-KEY-TESTREPO<br/><br/><br/>rpm -q gpg-pubkey<br/><br/>gpg-pubkey-c105b9de-4e0fd3a3<br/>gpg-pubkey-ef9632f2-500a6e55<br/><br/>已经添加了一组公钥。<br/><br/>检验rpm软件包：<br/><br/>cd /home/yum/centos/6<br/>rpm -K mtree-2.7-1.el6.rf.i686.rpm<br/><br/>mtree-2.7-1.el6.rf.i686.rpm: rsa sha1 (md5) pgp md5 OK<br/><br/>7、将公钥放到web服务器上<br/><br/>cp ~/RPM-GPG-KEY-TESTREPO /home/yum/centos/<br/><br/>8、服务端更新仓库信息<br/><br/>createrepo --update /home/yum/centos/6<br/><br/>主要是更新repodata目录中的数据。<br/><br/>四、（可选）客户端导入公钥<br/><br/>rpm --import http://XXX.XXX.XXX/centos/RPM-GPG-KEY-TESTREPO<br/><br/>（XXX.XXX.XXX是绑定的域名）<br/><br/>测试安装：<br/><br/>yum install mtree<br/><br/>参考资料：<br/>http://jianlee.ylinux.org/Computer/Linux发行版开发/createrepo.html<br/>http://zhumeng8337797.blog.163.com/blog/static/100768914201231852812921/<br/>http://ramblings.narrabilis.com/creating-a-yum-repository-repo-and-creating-a-yum-group-to-install-kickstart
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] YUM 公钥认证及导入及CentOS Linux自建yum源自制公钥。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>