Instalar certificado en IIS 7
El otro día tuve que instalar un certificado para SSL en un IIS 7 (en Windows Server 2008). El caso es que en cuanto me puse, me encontré con un problema, el certificado se instala correctamente, y justo después desaparece.
Por lo que parece, en IIS 7, el certificado que instales tiene que llevar la clave pública y la clave privada obligatoriamente. En IIS 6, sobre Windows Server 2003 valía con instalar una clave pública, pero en IIS 7 no.
Al final buscando un poco en Google, encontré esto. Es para SQL Server 2008, pero el mismo método sirve para IIS 7.
Básicamente, tenemos que tener la clave pública y la privada en ficheros separados (al fin y al cabo, nos hacen falta para solicitar el certificado). Opcionalmente podemos tener el certificado de la entidad intermedia, pero no es obligatorio. Ah y necesitamos tener instalado openssl. Yo lo hice desde una estación de trabajo linux y lo instalé con apt-get, para instalarlo en Windows... supongo que habrá algún instalable.
Para generar el certificado válido para IIS 7 tenemos que ejecutar el comando:
openssl pkcs12 -export -out certificate.pfx -inkey privatekey.txt -in certificate.txt -certfile intermediate.txt
Dónde privatekey.txt es la clave privada, certificate.txt es el certificado público y intermediate.txt, si lo tenemos, es el certificado de la entidad intermedia. Si no lo tenemos basta con quitar la parte "-certfile intermediate.txt".
Ampliar soft partitions en Solaris 10
Queremos romper una soft partition (en nuestro ejemplo, la d147) y repartir el tamaño en dos soft partitions nuevas y reaprovechar el tamaño sobrante para extender otra soft partition del mismo metadevice.
d147: Soft Partition
Device: d104
State: Okay
Size: 50331648 blocks (24 GB)
Extent Start Block Block count
0 138412288 50331648
d104: Mirror
Submirror 0: d114
State: Okay
Submirror 1: d124
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 189009024 blocks (90 GB)
d114: Submirror of d104
State: Okay
Size: 189009024 blocks (90 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s4 0 No Okay Yes
d124: Submirror of d104
State: Okay
Size: 189009024 blocks (90 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s4 0 No Okay Yes
Para borrar la soft partition:
root@solaris10 # metaclear d147
d147: Soft Partition is cleared
Y creamos dos soft partitions de 10GB cada una:
root@solaris10 # metainit d147 -p d104 10g
d147: Soft Partition is setup
root@solaris10 # metainit d148 -p d104 10g
d148: Soft Partition is setup
-p le dice a metainit que queremos crear una softpartition. En el device, en vez de un identificador de disco (cXtXdXsX), le pasamos el metadevice en cuestión (d104) y le decimos que tamaño tiene que tener (en este caso 10GB). Para ver el resultado:
root@solaris10 # metastat
...
d148: Soft Partition
Device: d104
State: Okay
Size: 20971520 blocks (10 GB)
Extent Start Block Block count
0 159383840 20971520
d104: Mirror
Submirror 0: d114
State: Okay
Submirror 1: d124
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 189009024 blocks (90 GB)
d114: Submirror of d104
State: Okay
Size: 189009024 blocks (90 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s4 0 No Okay Yes
d124: Submirror of d104
State: Okay
Size: 189009024 blocks (90 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s4 0 No Okay Yes
d147: Soft Partition
Device: d104
State: Okay
Size: 20971520 blocks (10 GB)
Extent Start Block Block count
0 138412288 20971520
...
Ya podemos crear un filsystem en esas particiones para poder montarlas. Ahora asignamos el espacio disponible (~4GB) a la soft partition d145 que esta en el mismo metadevice:
root@solaris10 # metattach d145 all
d145: Soft Partition has been grown
Le decimos que queremos asignar a la soft partition d145 todo el espacio disponible en el device en que reside (en este caso el metadevice d104)
root@solaris10 # metastat
...
d145: Soft Partition
Device: d104
State: Okay
Size: 29625453 blocks (14 GB)
Extent Start Block Block count
0 109052096 20971551
1 1 30
2 41943073 30
3 83886145 30
4 85983329 30
5 106954881 30
6 109052065 30
7 138412257 30
8 159383809 30
9 180355361 8653662
...
Con esto hemos extendido la soft partition, pero el filsystem sigue teniendo el mismo tamaño:
root@solaris10 # df -h
...
/dev/md/dsk/d145 9.8G 5.7G 4.0G 59% /zona/pepe/usr/sap/PEP
...
Usamos growfs para expandir el sistema de archivos en caliente:
root@solaris10 # growfs -M /zona/pepe/usr/sap/PEP /dev/md/rdsk/d145
/dev/md/rdsk/d145: Unable to find Media type. Proceeding with system determined parameters.
/dev/md/rdsk/d145: Unable to find Media type. Proceeding with system determined parameters.
Warning: 916 sector(s) in last cylinder unallocated
/dev/md/rdsk/d145: 29625452 sectors in 4822 cylinders of 48 tracks, 128 sectors
14465.6MB in 302 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
28709408, 28807840, 28906272, 29004704, 29103136, 29201568, 29300000,
29398432, 29496864, 29595296
A growfs hay que pasarle el punto de montaje que queremos extender (-M /zona/pepe/usr/sap/PEP) y el raw device sobre el que
se tiene que extender (la soft partition que acabamos de extender). Ahora podemos comprobar que el filsystem ocupa los 14GB.
root@solaris10 # df -h
...
/dev/md/dsk/d145 14G 5.7G 8.1G 42% /zona/pepe/usr/sap/PEP
...
Listo, y sin "downtime"...
Active Directory authentication in MyDMS
Pués teniamos myDMS andando en la oficina, para gestionar el tema de la documentación para la ISO, etc. La cosa es que como está en un servidor interno, los usuarios "rasos" entraban unsando el enlace de "entrar como invitado" que les permitía ver los contenidos pero no modificarlos.
El caso es que ahora estamos a punto de implantar una intranet usando Joomla! y lo hemos configurado para que autentifique usuarios contra el active directory en vez de crearlos todos en la base de datos. Usando el plugin JDiagnostic, es coser y cantar.
Así que con esa situación, la intención es hacer una especie de "puente" para que se pueda embeber (a que molo...) el DMS en Joomla. Para ello, estuve el otro día peleándome para que myDMS autenticara contra LDAP. Lo solucioné con un poco de "re-styling" del fichero de login y del de opciones.
- Fichero inc/icn.Settings.php
- A parte de los parámetros LDAP de myDMS añadir la línea:
var $ldapDomain = "@dominio.loc"
- Fichero op/op.Login.php
- Hice bastantes cambios y quedó así.
Con esto se autentifica correctamente en AD. Ahora falta lo del puente...
Convertir datos a UTF8 en MySQL
Manera rápida (asumiendo que la tabla acepta UTF-8 (DEFAULT CHARSET=utf8)):
$ mysqldump --opt --quote-names my_database > my_database.sql
$ iconv -f ISO_8859-1 -t UTF-8 my_database.sql > my_database-utf-8.sql
$ mysql my_database < my_database-utf-8.sql
A mi me ha ido de maravilla.

