Настройка работы Mercurial по https для Centos и Ubuntu

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал Mercurial по https нужно

Для Centos 6

Установите корневые сертификаты. Выполните комманды под рутом

yum install ca-certificates
update-ca-trust force-enable

Установите сертификаты от letsencrypt

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem -O"/etc/pki/ca-trust/source/anchors/lets-encrypt-x1-cross-signed.pem"
wget https://letsencrypt.org/certs/lets-encrypt-x2-cross-signed.pem -O"/etc/pki/ca-trust/source/anchors/lets-encrypt-x2-cross-signed.pem"
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O"/etc/pki/ca-trust/source/anchors/lets-encrypt-x3-cross-signed.pem"
wget https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem -O"/etc/pki/ca-trust/source/anchors/lets-encrypt-x4-cross-signed.pem"

Соберите сертификаты командой:

update-ca-trust extract

Для Ubuntu

Установите сертификаты от letsencrypt:

wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem -O"/usr/local/share/ca-certificates/lets-encrypt-x1-cross-signed.crt"
wget https://letsencrypt.org/certs/lets-encrypt-x2-cross-signed.pem -O"/usr/local/share/ca-certificates/lets-encrypt-x2-cross-signed.crt"
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O"/usr/local/share/ca-certificates/lets-encrypt-x3-cross-signed.crt"
wget https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem -O"/usr/local/share/ca-certificates/lets-encrypt-x4-cross-signed.crt"

Соберите сертификаты коммандой

update-ca-certificates

Настройка php и hg

Пропещите сертификаты в php. Для этого выполните команду sudo nano /etc/php.d/openssl.ini

# Для Centos
openssl.cafile="/etc/ssl/certs/ca-bundle.crt" 

# Для Ubuntu
# openssl.cafile="/etc/ssl/certs/ca-certificates.crt" 

openssl.capath="/etc/ssl/certs/"

Создайте файл nano ~/.hgrc в домашней папке и вставьте содержимое. Вместо текста в <> вставьте ваши данные

[ui]
username=<ваше имя пользователя>

[auth]
<myserver_alias>.prefix = https://<myserver_domain_name>/
<myserver_alias>.username = <логин>
<myserver_alias>.password = <пароль>

[defaults]
push =  -v -f --debug
pull =  -v --debug
commit =  -v --debug

#[hostfingerprints]
#<myserver_domain_name> = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

#[web]
#Для Centos
#cacerts = /etc/ssl/certs/ca-bundle.crt
#Для Ubuntu
#cacerts="/etc/ssl/certs/ca-certificates.crt"