搭建apache并使用自签证书实现https访问

一、前言

最近学习了密码学相关的知识和证书生成,然后尝试了自己生成证书且在apache上启用https访问。本文记录下相应的操作过程,实验环境为centos 6.8,apache 版本为httpd-2.4.33。

二、搭建apache 服务

具体不细说了,可参考我此前编写的编译安装的文章https://www.jianshu.com/p/f8e4046820d6

另外要说明下在编译安装完httpd服务后,还需要安装SSL模块,此时可以用yum命令安装mod_ssl,安装完成后将会在/etc/httpd/conf.d/目录下自动生成ssl.conf文件。(使用yum安装httpd服务的可以忽略此步骤)

yum install -y mod_ssl

三、构建私有CA并签发https证书

1、建议私有CA

[root[root@localhost ~]# cd /etc/pki/CA/private/   #CA私钥的存放位置
@localhost private]# (umask 077;openssl genrsa -out CA.key 4096)  #创建CA的私钥
Generating RSA private key, 4096 bit long modulus
...................................++
..................++
e is 65537 (0x10001)
[root@localhost private]# ll
total 4
-rw-------. 1 root root 3247 Apr 17 00:26 CA.key
[root@localhost private]# cd ..
[root@localhost CA]# cd certs/   #CA证书的存放位置
[root@localhost certs]# openssl req -new -x509 -key /etc/pki/CA/private/CA.key -out CA.crt -days 3650 #自签CA证书,有效期为十年
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) []:guangdong
Locality Name (eg, city) [Default City]:shenzhen
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:ops
Common Name (eg, your name or your server's hostname) []:ca.magedu.com
Email Address []:

[root@localhost ~]# touch /etc/pki/CA/{serial,index.txt}  #生成私有CA必要文件
[root@localhost ~]# echo 00 > /etc/pki/CA/serial   #将序列号写入到serial文件中

2、创建服务器证书并签发

[root@localhost ~]# cd /usr/local/httpd/    #httpd的安装路径
[root@localhost httpd]# mkdir ssl
[root@localhost httpd]# cd ssl/
[root@localhost ssl]# (umask 077;openssl genrsa -out httpd.key 4096)  #创建http服务器的私钥
Generating RSA private key, 4096 bit long modulus
.......................++
..............................................................................................................................................................................................................................++
e is 65537 (0x10001)

[root@localhost ssl]# openssl req -new -key /usr/local/httpd/ssl/httpd.key -out /usr/local/httpd/ssl/httpd.csr -days 365   #发起httpd的证书请求
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) []:guangdong
Locality Name (eg, city) [Default City]:shenzhen
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:ops
Common Name (eg, your name or your server's hostname) []:web.magedu.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

[root@localhost ssl]# openssl ca -in /usr/local/httpd/ssl/httpd.csr -out /usr/local/httpd/ssl/httpd.crt  -days 365 -cert /etc/pki/CA/certs/CA.crt -keyfile /etc/pki/CA/private/CA.key  #利用CA证书和CA的私钥签发httpd的证书
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 0 (0x0)
        Validity
            Not Before: Apr 16 16:53:50 2018 GMT
            Not After : Apr 16 16:53:50 2019 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = guangdong
            organizationName          = magedu
            organizationalUnitName    = ops
            commonName                = web.magedu.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                93:F0:36:6A:C6:06:04:B0:B2:47:08:E2:84:6C:BA:4B:C5:DF:CD:91
            X509v3 Authority Key Identifier: 
                keyid:03:F1:28:A6:2D:8A:64:D3:30:91:18:F7:67:AC:3E:28:B2:85:ED:47

Certificate is to be certified until Apr 16 16:53:50 2019 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
Data Base Updated

[root@localhost ssl]# ll
total 16
-rw-r--r--. 1 root root 7191 Apr 17 00:53 httpd.crt
-rw-r--r--. 1 root root 1704 Apr 17 00:50 httpd.csr
-rw-------. 1 root root 3243 Apr 17 00:48 httpd.key

四、启用https访问

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf   #此处为验证证书效果,可直接在此文件中修改;正确的https证书修改方式,后续学习后再分享
...
SSLCertificateFile "/usr/local/httpd/ssl/httpd.crt"       #更改为此前生产的服务器证书
SSLCertificateKeyFile "/usr/local/httpd/ssl/httpd.key"    #更改为此前生产的服务器密钥
...
:wq
[root@localhost ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]
证书生效
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351