Ubuntu下Apache将http升级到https(自签名证书,日后补充第三方证书版)

一、配置自签名证书

(一)创建证书

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

  • 默认方式生成
    <code>sudo make-ssl-cert generate-default-snakeoil</code>

  • 按模板文件生成
    <code>sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/apache2.pem</code>

  • 通过openssl命令行创建自签名证书(这里生成的证书也采用pem格式,这个pem格式档案中包含了私钥和公钥(证书)两部分内容。如果你将keyout和out分别采用不同的文件名,那keyout和out所对应的文件就会分别存放私钥和公钥(证书)。)
    <code>sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/apache.pem -out /etc/ssl/private/apache.pem -nodes -days 999</code>
    信息注释:

      Country Name (2 letter code) [AU]:CN//输入国家代码
      State or Province Name (full name)
      [Some-State]:JIANGSU//输入省名
      Locality Name (eg, city) []:SHANGHAI//输入城市名
      Organization Name (eg, company) [Internet Widgits PtyLtd]:YIQU//公司名
      Organizational Unit Name (eg, section)[]:RSA//输入组织单位名
      Common Name (eg, YOUR name)
      []:extend.me//输入主机名(想要开启https的主机名)
      Email Address []:dybaid@163.com//输入电子邮箱地址
    

(二)签署证书

<code>sudo openssl genrsa (-des3) 1024 >server.key //括号里的命令可以不加这个是密码验证,加了使用证书就需要输入密码</code>

(三)生成证书请求文件

<code>openssl req -new -key server.key > server.csr</code>

二、配置Apache

(一)开启SSL模块

<code>sudo a2enmod ssl</code>

(二)启用SSL站点

<code>sudo a2ensite default-ssl</code>

(三)加入监听端口

<code>sudo vim /etc/apache2/ports.conf</code>
编辑Apache端口配置,加入443端口(HTTPS采用的443端口传输数据)
<code>Listen 443</code>

(四)配置虚拟主机

编辑default-ssl文件,加入证书对应的主机头。
<code>sudo vim /etc/apache2/sites-enabled/default-ssl</code>

    ServerName extend.me

(五)配置SSL证书

按如下配置

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

三、重启Apache

/etc/init.d/apache2 restart
浏览器可能会报证书不合法,可以添加例外或者其他仍然访问就好了,自签名证书浏览器一般会提示不合法配置完之后大家可以用抓包工具看下数据传输是否加密了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容