Ada*_*son 73 ubuntu ssl debian openssl ssl-certificate
在 Ubuntu 上,用于签署证书(供 nginx 使用)的私钥的最佳位置似乎在 /etc/ssl/private/
这个答案补充说证书应该进入,/etc/ssl/certs/但这似乎是一个不安全的地方。做.crt文件需要保持安全或者他们认为公众?
Sha*_*den 53
.crt 文件被发送到所有连接的地方;它是公开的。(chown root:root和chmod 644)
添加到私钥位置;确保您正确固定它并将其放在那里。(chown root:ssl-cert和chmod 640)
B. *_*hea 43
只要您正确保护您的私钥文件,将它们放在哪里并不重要。该公证书是公开的; 不需要保护 - 服务器特权或其他。
为了扩展答案,我不使用默认位置/etc/ssl。
由于备份+其他原因,我更容易将所有我的都放在一个单独的区域。
对于 Apache SSL,我将我的/etc/apache2/ssl/private或类似的“根区域”保存在/etc/.
这篇文章面向 Ubuntu (Debian) + Apache,但应该适用于大多数系统 -
只需在给定的配置 (apache/nginx/etc) 中应用权限并更新位置/路径。
如果 SSL 密钥文件受到正确保护(目录和文件),您会没事的。注意笔记!
sudo mkdir /etc/apache2/ssl
sudo mkdir /etc/apache2/ssl/private
sudo chmod 755 /etc/apache2/ssl
sudo chmod 710 /etc/apache2/ssl/private
Run Code Online (Sandbox Code Playgroud)
注意:chmod 710支持ssl-certUbuntu 下的组。(请参阅评论)
将权限设置为700on/etc/apache2/ssl/private也可以正常工作。
将公共www ssl 证书和中间证书
/etc/apache2/ssl
放入 Put私有ssl 密钥中/etc/apache2/ssl/private
sudo chown -R root:root /etc/apache2/ssl/
sudo chown -R root:ssl-cert /etc/apache2/ssl/private/
Run Code Online (Sandbox Code Playgroud)
注意:
如果您没有ssl-cert组,只需在上面的行中使用 'root:root' 或跳过第二行。
公共证书
sudo chmod 644 /etc/apache2/ssl/*.crt
Run Code Online (Sandbox Code Playgroud)
私钥
sudo chmod 640 /etc/apache2/ssl/private/*.key
Run Code Online (Sandbox Code Playgroud)
注意:
由于 Ubuntu ssl-cert 组,组权限设置为 READ (640)。“600”也不错。
sudo a2enmod ssl
Run Code Online (Sandbox Code Playgroud)
(见最后一段)*
sudo nano /etc/apache/sites-available/mysiteexample-ssl.conf
sudo a2ensite mysiteexample-ssl
# ^^^^^^^^^^^^^^^^^ <-Substitute your ".conf" filename(s)
Run Code Online (Sandbox Code Playgroud)
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
或者
sudo systemctl restart apache2.service
Run Code Online (Sandbox Code Playgroud)
* 同样,这超出了问题的范围,但您可以复制默认的 Apache SSL 站点配置文件 ( sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf) 作为一个很好的起点/默认指令/目录的示例,通常在简单 (Ubuntu/Debian) Apache/SSL 'conf' 文件下使用. 它通常指向自签名 SSL 证书+密钥(蛇油)、CA 包以及用于给定 SSL 站点的通用指令。
复制后,只需编辑新的 .conf 文件并根据需要使用上面的新信息/路径添加/删除/更新它,然后执行sudo a2ensite mysiteexample-ssl以启用它。
小智 13
这里的所有答案似乎都不错,但我想提一下我发现的一件事是一个问题...如果您必须将您的证书与中间件或根连接起来以提供链文件,请不要将其放入/etc/ssl/certs,因为当c_rehash运行时,由于其中的根或中间体,它可能会为您的证书创建哈希符号链接。
然后,如果您的证书已过期并且您删除了它们,并且不知道要重新运行c_rehash,那么您可能已经破坏了/etc/ssl/certs目录中的哈希符号链接,并且当您的本地计算机尝试通过以下方式连接到自身时,就会发生奇怪的事情SSL,它找不到要验证的根。例如,使用 curl 我突然开始得到:
curl: (60) SSL certificate problem: unable to get issuer certificate
Run Code Online (Sandbox Code Playgroud)
在清理了一些旧的 .crt 和连接的 .pem 文件后不久,我在/etc/ssl/certs.
至少将您的链条存放在其他地方可以避免这个问题。我最终制作了一个/etc/ssl/local_certs来保存我的证书和链,所以它们不会在你会发现的 CA 证书的混乱中丢失/etc/ssl/certs
Rae*_*nha 10
位置正确:
/etc/ssl/certs/对于.crt文件/etc/ssl/private对于.key文件所有者:
root:root为了/etc/ssl/certsroot:ssl-cert为了/etc/ssl/private权限:
644对于.crt文件600对于.key文件这适用于nginx.
| 归档时间: |
|
| 查看次数: |
117138 次 |
| 最近记录: |