Ubuntu下配置Apache HTTPS

 一、创建证书

  证书(Cerificate)的基本作用是将一个公钥和安全个体(个人、公司、组织等)的名字绑定在一起。

Ubuntu下配置Apache HTTPS

  一般情况下,制作证书要经过几个步骤,如上图所示。首先用openssl genrsa生成一个私钥,然后用openssl req生成一个签署请求,最后把请求交给CA,CA签署后就成为该CA认证的证书了。如果在第二步请求时加上-x509参数,那么就直接生成一个self-signed的证书,即自己充当CA认证自己。

  除了这种方式外,在Debian或者Ubuntu系统中有更加简便的方法制作self-signed证书使用make-ssl-cert命令。该命令在ssl-cert的包里,一般会伴随着Apache的安装而安装,可能单独安装也可以。

  如果您只是想做一张测试用的电子证书或不想花钱去找个 CA 签署,您可以造一张自签 (Self-signed) 的电子证书。当然这类电子证书没有任何保证,大部份软件偶到这证书会发出警告,甚至不接收这类证书。 使用自签名(self-signed)的证书,它的主要目的不是防伪,而是使用户和系统之间能够进行SSL通信,保证密码等个人信息传输时的安全。

  这里先说下证书相关的几个名词:

  RSA私钥能解密用证书公钥加密后的信息。通常以.key为后缀,表示私钥也称作密钥。是需要管理员小心保管,不能泄露的。

  CSR(Certificate Signing Request)包含了公钥和名字信息。通常以.csr为后缀,是网站向CA发起认证请求的文件,是中间文件。

  证书通常以.crt为后缀,表示证书文件。

  CA(Certifying Authority)表示证书权威机构,它的职责是证明公钥属于个人、公司或其他的组织。

  1、制作自签名证书

  通过make-ssl-cert创建自签名证书

  如果没安装这个工具,先用以下命令安装。

apt-get install ssl-cert  

  make-ssl-cert生成证书的方法有两种,一种是根据生成按工具默认的方式生成,一种是按模板文件生成。

#默认的方式生成 make-ssl-cert generate-default-snakeoil

注:默认方式生成的公钥(证书)在/etc/ssl/certs/ssl-cert-snakeoil.pem,私钥在/etc/ssl/private/ssl-cert-snakeoil.key。

#按模板文件生成 make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/apache2.pem  

  这里生成的证书采用pem格式,这个pem格式档案中包含了私钥和公钥(证书)两部分内容。

  注:在要求输入Common Name(eg, YOUR name)时,输入你的主机名。Common Name必须和httpd.conf中server name必须一致,否则apache不能启动。启动apache时错误提示为:RSA server certificate CommonName (CN) `Koda’ does NOT match server name!? 。
    make-ssl-cert是只能由root执行的命令。

  通过openssl命令行创建自签名证书

  这里生成的证书也采用pem格式,这个pem格式档案中包含了私钥和公钥(证书)两部分内容。如果你将keyout和out分别采用不同的文件名,那keyout和out所对应的文件就会分别存放私钥和公钥(证书)。

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/apache.pem -out /etc/ssl/private/apache.pem -nodes -days 999   writing new private key to '/etc/ssl/private/apache.pem' ----- 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) [AU]:CN ←输入国家代码 State or Province Name (full name) [Some-State]:CHONGQING ← 输入省名 Locality Name (eg, city) []:CHONGQING ←输入城市名 Organization Name (eg, company) [Internet Widgits Pty Ltd]:MIKE ← 输入公司名 Organizational Unit Name (eg, section) []:MIKE ← 输入组织单位名 Common Name (eg, YOUR name) []: ← 输入主机名 Email Address []:easylife206@gmail.com ←输入电子邮箱地址  

  注:在要求输入Common Name(eg, YOUR name)时,输入你的主机名。Common Name必须和httpd.conf中server name必须一致。

  2、制作需CA(Certificate Authority)签署证书

  步骤1、生成私钥

openssl genrsa -des3 1024 >server.key  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppdwd.html